fs.promise.lstat()方法在Node.js的文件系统模块中定义。文件系统模块本质上是用于与用户计算机的硬盘进行交互的。 lstat()方法使用在stats对象(lstat提供的数据)上定义的方法,提供了一些特定于文件和文件夹的信息。 fs.promise.lstat()方法返回已解决或被拒绝的Promise,因此避免了fs.readdir()方法中可能发生的回调嵌套或回调地狱问题。
用法
fs.promise.lstat(path, options)
参数:该方法接受上述和以下所述的两个参数:
path:它是一个字符串,缓冲区或url,用于指定目录的路径,我们尝试读取其内容。
options:它是一个可选参数。一个选项参数是‘bigint’,它是一个布尔值。在这里,我们通过fs.lstat()方法指定返回的统计对象中的数值是否为bigint(default-false)。
返回值:它返回已解决或已拒绝的承诺。如果成功读取目录,则使用stats对象解析promise,否则,如果发生任何错误(example-specified目录不存在或没有读取文件的权限,则使用错误对象),则拒绝该对象。
从已解决的promise返回的stats对象中定义了一些属性和方法,这些属性和方法有助于获取有关目标文件或文件夹的某些特定详细信息。下面指定了一些方法。
- stats.isDirectory():如果stats对象描述文件系统目录,则返回true。
- stats.isFile():如果stats对象描述一个常规文件,则返回true。
- stats.isSocket():如果stats对象描述一个套接字,则返回true。
- stats.isSymbolicLink():如果stats对象描述符号链接,则返回true。
- stats.isFile():如果stats对象描述一个常规文件,则返回true。
- stats.isFIFO():如果stats对象描述先进先出管道,则返回true。
- stats.size:指定文件大小(以字节为单位)。
- stats.blocks:指定为文件分配的块数。
范例1:
// Node.js program to demonstrate the
// Buffer.from() Method
// Importing File System module
const fs = require('fs')
// fs.readdir() reads contents of
// target directory
// process.cwd() gives current
// working directory
fs.readdir(process.cwd(), (err, filenames) => {
if (err) {
console.log(err)
return
}
for (let filename of filenames) {
// Calling lstat method to give the
// stats object for every directory
fs.promises.lstat(filename)
// If promise resolved and datas
// are fetched
.then(stats => {
if (stats.isFile()) {
console.log(`${filename} ---------> File`)
} else {
console.log(`${filename} ---------> Folder`)
}
})
// If promise is rejected
.catch(err => {
console.log(err)
})
}
})
输出:
范例2:
// Node.js program to demonstrate the
// Buffer.from() Method
// Importing File System module
const fs = require('fs')
// The fs.readdir() method reads the
// contents of target directory
// The process.cwd() method gives the
// current working directory
fs.readdir(process.cwd(), async (err, filenames) => {
if (err) {
console.log(err)
return
}
for (let filename of filenames) {
// Calling lstat method to give the
// stats object for every directory
fs.promises.lstat(filename)
// If promise resolved and datas
// are fetched
.then(stats => {
console.log(
`${filename} --------> ${stats.size} bytes`)
})
// If promise is rejected
.catch(err => {
console.log(err)
})
}
})
输出:
参考: https://nodejs.org/api/fs.html#fs_fspromises_lstat_path_options
相关用法
- Node.js console.timeLog()用法及代码示例
- Node.js GM shave()用法及代码示例
- Node.js GM emboss()用法及代码示例
- Node.js GM crop()用法及代码示例
- Node.js GM despeckle()用法及代码示例
- Node.js GM whiteThreshold()用法及代码示例
- Node.js GM whitePoint()用法及代码示例
- Node.js GM border()用法及代码示例
- Node.js GM solarize()用法及代码示例
- Node.js GM motionBlur()用法及代码示例
- Node.js GM magnify()用法及代码示例
- Node.js GM minify()用法及代码示例
- Node.js GM write()用法及代码示例
注:本文由纯净天空筛选整理自hunter__js大神的英文原创作品 Node.js | fsPromise.lstat() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。