【问题标题】:Angular get filename without extension from full pathAngular从完整路径获取不带扩展名的文件名
【发布时间】:2020-09-16 20:38:01
【问题描述】:

我正在使用 angular 并且在我的 .ts 文件中我想获取不带扩展名的路径路径的文件名。

所以这里是完整路径+文件名:

const fullpath = ["C:\Users\my.user\Desktop\the_filename.txt"]

我一直在尝试这个:

getFileNameOnly() {
  var fileName = "C:\Users\my.user\Desktop\the_filename.txt";
  var res = fileName.substr(fileName.lastIndexOf('.') + 1); 
  console.log(res);
}

以上返回错误:

TypeError: fileName.substr is not a function

我怎样才能做到这一点,结果是:

"the_filename"?

【问题讨论】:

  • 那么data 是什么?我敢打赌它不是一个字符串,或者你忘记了将文件名作为函数的参数。
  • 抱歉,更新问题
  • 检查一些答案herehere
  • 好吧,您拥有的代码绝对有效。只需将其复制并粘贴到您的控制台中,就不会出现任何错误。
  • 好的,尝试使用控制台,它返回的是 .txt(扩展名)而不是文件名

标签: angular typescript angular9


【解决方案1】:
var fullpath = "C:/Users/my.user/Desktop/the_filename.txt";
var filename = fullpath.split('/').pop().split('.')[0];

结果:- “文件名”

编辑 1:

var fullpath = "C:\Users\my.user\Desktop\the_filename.txt";
JSON.stringify(fullpath).split('\\').pop().split('.')[0]

结果:- “文件名”

控制台图像:

【讨论】:

  • 我的路径有反斜杠,当我将您的代码更改为有反斜杠时它不起作用
  • 它是否适用于“C:\Users\my.user\Desktop\my_file.txt”(而不是“the_filename.txt”)?
【解决方案2】:

我已经更正了您的字符串(“\”必须是字符串中的“\\”,否则它将“转义”u、m、d、...)和代码:

getFileNameOnly() {
  var fileName = "C:\\Users\\my.user\\Desktop\\the_filename.txt";
  var res = fileName.substr(fileName.lastIndexOf('\\') + 1);
  res = res.substr(0, res.lastIndexOf('.'));  
  console.log(res);
}

还有表格元素:

getFileNameOnly() {
  const fullpath = ["C:\\Users\\my.user\\Desktop\\the_filename.txt"];
  var res = fileName[0].substr(fileName.lastIndexOf('\\') + 1);
  res = res.substr(0, res.lastIndexOf('.'));  
  console.log(res);
}

请注意,您仍然需要双反斜杠,它是一个字符串。

【讨论】:

  • 路径在一个变量中给我一个没有双反斜杠只有一个反斜杠
  • 如果您 console.log 您的变量(试试看!),您将拥有:“C:Usersmy.userDesktop he_filename.txt”。您应该告诉提供此数据的人它的格式有误。
  • 控制台显示如下:["C:\Users\my.user\Desktop\the_filename.txt"]
  • 查看一个最小的 Typescript Playground 示例:typescriptlang.org/play?#code/…
  • OK 抱歉:我错过了 [] ...我得到的变量如下: var fileName = ["C:\Users\my.user\Desktop\the_filename.txt" ];
【解决方案3】:

这样使用

 getFileNameOnly() {
  var fileName = "C:\\Users\\my.user\\Desktop\\the_filename.txt";
  var res = fileName.split('\\').pop().split('/').pop(); 
  console.log(res);
}

【讨论】:

  • OK 抱歉:我错过了 [] ...我得到的变量如下: var fileName = ["C:\Users\my.user\Desktop\the_filename.txt" ];
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-15
  • 2010-09-27
  • 2020-03-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多