美文网首页
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