Node JS - 读取文件属性
Node JS - read file properties
我正在使用 NWJS 开发桌面应用程序,我需要获取 .exe 文件的文件属性。
我试过使用 npm 属性模块 https://github.com/gagle/node-properties,但我得到一个空对象。
properties.parse('./unzipped/File.exe', { path: true }, function (err, obj) {
if (err) {
console.log(err);
}
console.log(obj);
});
我需要得到 "File version" 属性:
我也试过使用 fs.stats 但没有成功。
有什么想法吗?
除非您想编写一些本机 C 模块,否则有一种 hacky 方法可以轻松完成此操作:使用 windows wmic
命令。这是获取版本的命令(通过谷歌搜索找到):
wmic datafile where name='c:\windows\system32\notepad.exe' get Version
所以你可以 运行 节点中的这个命令来完成工作:
var exec = require('child_process').exec
exec('wmic datafile where name="c:\\windows\\system32\\notepad.exe" get Version', function(err,stdout, stderr){
if(!err){
console.log(stdout)// parse this string for version
}
});
如果您希望将属性作为对象提供,可以使用get-file-properties
。它在后台使用 wmic
,但负责将输出解析为易于使用的类型化对象以供您的应用程序使用。
import { getFileProperties, WmicDataObject } from 'get-file-properties'
async function demo() {
// Make sure to use double backslashes in your file path
const metadata: WmicDataObject = await getFileProperties('C:\path\to\file.txt')
console.log(metadata.Version)
}
免责声明:我是 get-file-properties
的作者
我正在使用 NWJS 开发桌面应用程序,我需要获取 .exe 文件的文件属性。
我试过使用 npm 属性模块 https://github.com/gagle/node-properties,但我得到一个空对象。
properties.parse('./unzipped/File.exe', { path: true }, function (err, obj) {
if (err) {
console.log(err);
}
console.log(obj);
});
我需要得到 "File version" 属性:
我也试过使用 fs.stats 但没有成功。 有什么想法吗?
除非您想编写一些本机 C 模块,否则有一种 hacky 方法可以轻松完成此操作:使用 windows wmic
命令。这是获取版本的命令(通过谷歌搜索找到):
wmic datafile where name='c:\windows\system32\notepad.exe' get Version
所以你可以 运行 节点中的这个命令来完成工作:
var exec = require('child_process').exec
exec('wmic datafile where name="c:\\windows\\system32\\notepad.exe" get Version', function(err,stdout, stderr){
if(!err){
console.log(stdout)// parse this string for version
}
});
如果您希望将属性作为对象提供,可以使用get-file-properties
。它在后台使用 wmic
,但负责将输出解析为易于使用的类型化对象以供您的应用程序使用。
import { getFileProperties, WmicDataObject } from 'get-file-properties'
async function demo() {
// Make sure to use double backslashes in your file path
const metadata: WmicDataObject = await getFileProperties('C:\path\to\file.txt')
console.log(metadata.Version)
}
免责声明:我是 get-file-properties