美文网首页
fs.Dirent 类目录项,通过读取目录返回

fs.Dirent 类目录项,通过读取目录返回

作者: 静昕妈妈芦培培 | 来源:发表于2021-03-10 14:25 被阅读0次

fs.Dirent 类#

目录项(可以是文件或目录中的子目录)的表示,通过读取 fs.Dir 返回。 目录项是文件名和文件类型对的组合。

此外,当调用 fs.readdir()fs.readdirSync()withFileTypes 选项设置为 true)时,则生成的数组会使用 fs.Dirent 对象(而不是字符串或 Buffer)填充。

例:递归的读取assets目录中的每一项,包含assets子目录的每一项


image.png
const fs = require('fs')
const path = require('path')

function readDir(dirpath) {
    //打开目录,生成一个目录流dir
    fs.opendir(dirpath, (err,dir) => {
        //fs.opendir创建一个 fs.Dir(目录流),其中包含所有用于更进一步读取和清理目录的的函数
        console.log('当前打开的目录路径是:' + dir.path)
        let dirent;

        //读取目录中的每一项
        // dir.readSync()同步地读取dir中下一个目录项,当没有可读取的目录项时返回null
        while(dirent = dir.readSync()) {
            console.log(dirent)
            //假如当前目录项是文件
            if(dirent.isFile()) {
                console.log(`${dirent.name}是文件`)
            }
            //假如当前目录项是一个子目录
            if(dirent.isDirectory()) {
                console.log(`${dirent.name}是目录`)
                readDir(path.resolve(dirpath, dirent.name))
            }
        }
        //异步地关闭目录
        dir.close(err => {
            if(err) {
                console.error(err)
                return
            }
            console.log('已关闭目录流')
        })
    })
}
readDir('./assets')

执行结果:


image.png

相关文章

网友评论

      本文标题:fs.Dirent 类目录项,通过读取目录返回

      本文链接:https://www.haomeiwen.com/subject/smdwqltx.html