Nodejs 获取文件扩展名

Nodejs get file extension

我有一个包含图像的文件夹,它们可以有不同的格式,但名称始终是唯一的。如果我知道文件名 没有 扩展名(例如 indexnot index.html)?我可以检查文件是否存在于我希望存在的每个扩展名中,但这对我来说似乎是一个糟糕的解决方案。

示例: 我知道有一个名为 PIC 的图像,但我不知道扩展名(可以是“.png”、“.jpg”等),因此我无法使用文件命令。

好吧,如果您的 运行 基于 Unix 的系统,这可能是一种解决方法。

var sys = require('util')
var exec = require('child_process').exec;

function puts(error, stdout, stderr) { 
   console.log(stdout) 
}

// this is where you should get your path/filename
var filename = "login";
// execute unix command 'file'
exec("file " + filename, puts);

我针对 PNG 文件和 EJS 文件对其进行了测试,两者都没有扩展名(没有什么区别)。 结果如下:

PNG: 照片:PNG 图像数据,100 x 100,8-bit/color RGB,非隔行扫描

EJS(基本上是 HTML): 登录:HTML 文档,ASCII 文本

您可以检查 file 命令行参数,以便更轻松地使用字符串(例如 file -b filename)。 如果使用 Windows,那么您必须检查 file.

的替代命令

希望对您有所帮助。

var path = require('path')

path.extname('index.html') // returns '.html'

这里是引用的答案

Node.js get file extension

已更新:

https://www.npmjs.com/package/file-extension npm install --save 文件扩展名 允许您指定文件名,然后它将 return 扩展名

我知道我迟到了,但你可以在基于 unix 的系统中使用 grep 命令。

ls | grep PIC。它所做的是首先给出工作目录的目录列表,然后从目录列表的输出中搜索短语 PIC 并将其打印出来。 (所以唯一要打印的是文件名)

在Windows中,使用dir PIC.* /b

您可以使用 child_process 执行这些命令,如其他答案所示