
文件包含内容和类型。除此以外,你还会有一个文件的元数据。
在Windows等操作系统中,获取文件信息是非常容易的。
如何在Nodejs中获得文件的元数据信息?
Nodejs提供了内置的模块--fs ,它包含stat() 和statSync() 方法来获取文件或目录的元数据属性。
它提供了两个方法
- fs.statSync方法
- fs.start方法
我们有两种方法可以完成它。
nodejs fs统计方法
stat()是一个异步操作,用于读取文件并打印元数据的对象。
fs.stat(path, options, callbackfunction)
path 是文件或目录的绝对或相对路径 是传递的可选参数,用于自定义输出,bigint是false或true。true表示该选项返回的数值 是一个函数,其中包含第一个参数error,如果出现错误,第二个参数是返回文件元数据的对象。options``callback
在Nodejs的异步操作中包含一个回调
const fs = require("fs")
fs.stat("./package.json", (err, fileObject) => {
if (err) {
console.log(err)
} else {
console.log(fileObject)
}
})
输出:
Stats {
dev: 3330445139,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
blksize: 4096,
ino: 562949955554406,
size: 204,
blocks: 0,
atimeMs: 1645280252542.7854,
mtimeMs: 1644120598975.729,
ctimeMs: 1644120598975.729,
birthtimeMs: 1642860250548.1833,
atime: 2022-02-19T14:17:32.543Z,
mtime: 2022-02-06T04:09:58.976Z,
ctime: 2022-02-06T04:09:58.976Z,
birthtime: 2022-01-22T14:04:10.548Z
}
它提供了以下方法
const fs = require("fs")
fs.stat("./package.json", (err, fileObject) => {
if (err) {
console.log(err)
} else {
console.log(fileObject.isFile()) // return true for files
console.log(fileObject.isDirectory())// true for directory
console.log(fileObject.isBlockDevice())
console.log(fileObject.isSymbolicLink()) return true for symbolic link
console.log(fileObject.isCharacterDevice())
console.log(fileObject.isFIFO())
console.log(fileObject.isSocket())
}
})
输出:
true
false
false
false
false
false
false
Nodejs fs statSync函数
statSync是start函数的同步版本,它按顺序执行,等待执行结束后再进入下一行。
下面是一个语法
fs.statSync(path, options)
path 是资源(文件,目录)的绝对或相对路径 options包含javascript,其中bigint是key,value是true/false。如果是true,输出返回biginteger格式的数字。
const fileInfo = fs.statSync('./package.json')
console.log(fileInfo)