为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript从路径中获取文件名和类型作为字符串

Javascript从路径中获取文件名和类型作为字符串

Go
慕村225694 2023-08-21 15:14:18
我有一个文件拖放系统,它将文件的整个路径作为字符串返回C:\Users\alexr\Desktop\filename.type。我可以删除主目录,这样我就剩下Desktop\filename.type. 如何分隔文件路径 ( Desktop) 以等于变量path以及文件名和类型 ( filename.type) 以等于变量type。我想要一个 javascript 或 jQuery 的答案(尽管我怀疑它是否需要)编辑预期结果:少说我有以下路径Desktop\Folder\file.txt我想要一个path包含的变量Desktop\Folder和一个变量file包含file.txt希望这能澄清事情。
查看完整描述

3 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

const str   = String.raw`Desktop\Folder\file.txt`;

const parts = str.split(`\\`);

const file  = parts.pop();

const path  = parts.slice(0).join(`\\`);


console.log(file)

console.log(path)

注意:我用来String.raw保留正斜杠,你可能不需要这个



查看完整回答
反对 回复 2023-08-21
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

您可以使用 stringsubstring来获取斜杠的最后一个索引(因为这是一个很好的指示器filename.type。


这 \\ 只是为了逃避 \


例子:


function splitPath(path) {

  return {

    path: path,

    file: path.substring(path.lastIndexOf('\\') + 1, path.length)

  };

}


const path = 'C:\\Users\\alexr\\Desktop\\filename.type';

console.log(splitPath(path));


查看完整回答
反对 回复 2023-08-21
?
DIEA

TA贡献1820条经验 获得超2个赞

您需要像这样分割文件路径,


JSON.stringify(str).split("\\");

这里不需要改变你的输入,如果你想分割带有反斜杠的字符串,那么使用,


.split("\\")

片段如下,


const str = "Desktop\filename.type";


const res = JSON.stringify(str).split("\\");

const result = JSON.parse(res).split(',');


const path = result[0];

const file = result[1];


console.log(path);

console.log(file);

编辑:


好吧,这就是我使用 的原因JSON.stringify(),因为字符串有反斜杠,它会忽略后面的下一个字符backslash,因此要获取实际的字符串,这里我使用了,JSON.stringify..您可以在下面的控制台中找到两者之间的区别。


const str = "Desktop\filename.type";

console.log(str);

console.log(JSON.stringify(str))


console.log(JSON.stringify(str));

当你分割实际的字符串时,


.split("\\"),

结果将是单个字符串数组..


const str = "Desktop\filename.type";


console.log(str.split("\\"));


查看完整回答
反对 回复 2023-08-21
  • 3 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信