如何使用Node获取文件的细节

75 阅读1分钟

如何使用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
})