【问题标题】:Nodejs get file extensionNodejs获取文件扩展名
【发布时间】:2016-09-01 14:47:27
【问题描述】:

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

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

【问题讨论】:

标签: node.js file-extension


【解决方案1】:

好吧,如果您正在运行基于 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 位/彩色 RGB,非隔行扫描

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

您可以检查 file 命令行参数以更轻松地处理字符串(例如 file -b 文件名)。 如果使用 Windows,那么您必须检查 file 的替代命令。

希望对你有用。

【讨论】:

  • 感谢您的回答。我认为我的问题没有足够具体,所以我更新了我的问题。
  • 你可以使用命令 dirls 吗?我的意思是,如果您可以使用操作系统命令,那么答案中的代码可以适应操作系统命令(例如 ls index* OR dir index*)。
  • 添加 -b 和 --extension 以获得可能的扩展名列表。在没有扩展名的 jpg 上测试给了我jpeg/jpg/jpe/jfif
【解决方案2】:

var path = require('path')

path.extname('index.html') // 返回 '.html'

这是参考答案

Node.js get file extension

更新:

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

【讨论】:

  • 正如我的问题中所述,我不知道文件的扩展名。我只知道有一个名为“index.SOMETHING”的文件。
  • $ npm install --save file-extension 这里是文档npmjs.com/package/file-extension
【解决方案3】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-07
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 2014-04-14
    • 2012-03-24
    • 2010-11-23
    • 2023-03-09
    相关资源
    最近更新 更多