如何使用Node获取文件的细节
每个文件都带有一组细节,我们可以使用Node检查。
特别是,使用fs 模块提供的stat() 方法。
你通过文件路径来调用它,一旦Node获得了文件的细节,它将调用你传递的回调函数,有2个参数:一个错误信息,和文件的统计信息。
const fs = require('fs')
fs.stat('/Users/flavio/test.txt', (err, stats) => {
if (err) {
console.error(err)
return
}
//we have access to the file stats in `stats`
})
Node还提供了一个同步方法,它可以阻止线程,直到文件统计信息准备好。
const fs = require('fs')
try {
const stats = fs.stat('/Users/flavio/test.txt')
} catch (err) {
console.error(err)
}
文件信息被包含在stats变量中。我们可以使用统计信息提取什么样的信息?
很多,包括。
- 如果该文件是一个目录或一个文件,使用
stats.isFile()和stats.isDirectory() - 如果该文件是一个符号链接,使用
stats.isSymbolicLink() - 使用
stats.size,以字节为单位的文件大小。
还有其他一些高级方法,但你在日常编程中会用到的大部分是这样的。
const fs = require('fs')
fs.stat('/Users/flavio/test.txt', (err, stats) => {
if (err) {
console.error(err)
return
}
stats.isFile() //true
stats.isDirectory() //false
stats.isSymbolicLink() //false
stats.size //1024000 //= 1MB
})