Node.js filehandle.stat()类中的方法:FileHandle
原文:https://www . geesforgeks . org/node-js-file handle-stat-method-from-class-file handle/
filehandle.stat() 方法是在 Node.js 的 File System 模块中定义的,File System 模块基本上就是和用户电脑的硬盘进行交互。filehandle.stat()方法使用在 stats 对象(stat 方法返回的对象)上定义的方法给出了一些特定于文件和文件夹的信息。该方法返回已解决或已拒绝的承诺。
语法:
filehandle.stat(options);
参数:该方法接受如上所述的单个参数,描述如下:
- 选项:为可选参数。一个选项参数是“bigint”,它是一个布尔值,这里我们指定 filehandle.stat()返回的 stats 对象中的数值是否为 biting(默认值-false)。
返回值:返回已解析或已拒绝的承诺。如果成功读取目录,则使用 stats 对象解析承诺;否则,如果出现任何错误,则使用 error 对象拒绝承诺(例如,指定的目录不存在或无权读取文件等)。
从解析的承诺返回的 stats 对象中定义了一些属性和方法,这有助于获得一些关于目标文件或文件夹的具体细节。
- stats.isDirectory(): 如果 stats 对象描述文件系统目录,则返回 true。
- stats.isFile(): 如果 stats 对象描述了一个常规文件,则返回 true。
- stats.isSocket(): 如果 stats 对象描述了一个套接字,则返回 true。
- stats . issymbolilink():如果 stats 对象描述了一个符号链接,则返回 true。
- stats.isFile(): 如果 stats 对象描述了一个常规文件,则返回 true。
- stats.isFIFO(): 如果 stats 对象描述先进先出管道,则返回 true。
- stats.size: 以字节为单位指定文件的大小。
- stats.blocks: 它指定为文件分配的块数。
示例 1: 该示例使用每个子目录的统计信息来区分目录的文件和文件夹。
// Node.js program to demonstrate the
// filehandle.stat() Method
// Importing File System and Utilities module
const fs = require('fs')
const fileOrFolder = async (dir) => {
let filehandle, stats = null
try {
filehandle = await fs
.promises.open(dir, mode = 'r+')
// Stats of directory
stats = await filehandle.stat()
} finally {
if (filehandle) {
// Close the file if it is opened.
await filehandle.close();
}
}
// File or Folder
if (stats.isFile()) {
console.log(`${dir} ----> File`)
} else {
console.log(`${dir} ----> Folder`)
}
}
const allDir = fs.readdirSync(process.cwd())
allDir.forEach(dir => {
fileOrFolder(dir)
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
})
输出:
示例 2: 本示例使用每个子目录的统计信息来统计其大小。
// Node.js program to demonstrate the
// filehandle.stat() Method
// Importing File System and Utilities module
const fs = require('fs')
const sizeOfSubDirectory = async (dir) => {
let filehandle, stats = null
try {
filehandle = await fs
.promises.open(dir, mode = 'r+')
//Stats of directory
stats = await filehandle.stat()
} finally {
if (filehandle) {
// Close the file if it is opened.
await filehandle.close();
}
}
//size of sub-directory
console.log(`${dir} --------> ${stats.size} bytes`)
}
const allDir = fs.readdirSync(process.cwd())
allDir.forEach(dir => {
sizeOfSubDirectory(dir)
.catch(err => {
console.log(`Error Occurs, Error code ->
${err.code}, Error NO -> ${err.errno}`)
})
})
输出:
参考:T2】https://nodejs.org/api/fs.html#fs_filehandle_stat_options
版权属于:月萌API www.moonapi.com,转载请注明出处