隐藏文件扩展名时识别文件类型

时间:2020-01-04 00:47:20

标签: javascript node.js file path fs

识别任何给定文件类型的正确方法是什么?

只要启用了显示文件扩展名的选项,我就知道有两种方法可以做到,它们几乎完全相同。

path.substring(path.lastIndexOf('.')+1)

const path = require('path')
path.extname(string)

但是,如果有人禁用了显示文件扩展名的选项,该怎么办。在这种情况下,理想地以跨平台方式,我如何识别给定文件的文件类型?

2 个答案:

答案 0 :(得分:1)

当您说“类型”时,我假设您的意思是“文件名中最后一个点之后的部分” –无论用户的Windows资源管理器设置如何,该名称都会存在。

答案 1 :(得分:0)

也许有更好的方法,但是我只能想到这种解决方案。

const { execSync } = require('child_process');

let output = execSync('file ~/textFile')
  .toString()

console.log(output) // will print '/Users/macabeus/textFile: ASCII text'

这仅适用于Unix系统,因此您需要在Windows中使用WSL。