Node.js_fs文件系统(三)

Node.js_fs文件系统(三)

  • fs.stat()

    判断文件类型

    isFile():判断是否是一个文件

    isDirectory:判断是否是一个文件夹

    const fs = require("fs");
    
    fs.stat("./index.js",(err,data) =>{
        console.log(data.isFile());
    })
    
  • fs.mkdir()

    创建目录(文件夹)

    fs.mkdir(path[, options], callback)(必须要写回调,即使回调是空的)

    const fs = require("fs");
    const path = require("path");
    
    fs.mkdir(path.resolve(__dirname,"./demo"),(err) => {});
    
  • fs.writeFile()

    创建并写入文件

    fs.writeFile(file, data[, options], callback)

    fs.writeFile(path.resolve(__dirname,"./demo/index.txt"),"abc",(err) => {});
    
  • fs.readFile()

    注意:直接读取信息的是buffer文件,需要将其转换为字符串

    fs.readFile(path.resolve(__dirname,"./demo/index.txt"),(err,data) => {
        //console.log(data);  //此时为buffer文件
        console.log(data + "");//或者data.toString()
    })
    
  • fs.rename()

    重命名文件或文件夹(oldpath , newpath)

    fs.rename(path.resolve(__dirname,"./demo/index.txt"),path.resolve(__dirname,"./demo/list.txt"),(err) => {})
    //index.txt文件被修改为list.txt
    
  • fs.readdir()

    查看demo1下的所有文件夹

    fs.readdir(path.resolve(__dirname,"../../demo1"),(err,list) => {
        console.log(list);
    })
    
  • fs.unlink()

    删除文件

    fs.unlink(path.resolve(__dirname,”./demo/list.txt),() =>{})
    //list.txt被删除
    
  • fs.rmdir()

    删除文件夹

    fs.rmdir(path.resovle(__dirname,"./demo"),(err) =>{})
    
  • 案例:深层遍历给定路径下的所有文件

    文件目录.png
    1. 先读取文件夹,获取文件的所有文件

    2. 对获取的文件进行遍历,用fs.stat 获得文件状态,

    3. 通过状态中的stat.isFile()或isisDirectory()判断是否是一个文件(夹),是文件直接输出文件名,不是文件就继续递归。

    let fs = require("fs");
    let path = require("path");
    let filePath = "E:/lxc/"
    function myReadfile(filePath) {
        //根据文件路径读取文件,返回文件列表
        fs.readdir(filePath, (err, files) => {
            if (err) {
                console.warn(err);
                return;
            }
            //遍历读取到的文件列表
            files.forEach(file => {
                //拼接获取绝对路径,fs.stat(绝对路径,回调函数)
                let fPath = path.join(filePath, file);
                fs.stat(fPath, (err, stat) => {
                    if (err) {
                        console.warn('获取文件stats失败');
                        return;
                    }
                    if (stat.isFile()) {
                        console.log(file);
                    }
                    else {
                        myReadfile(fPath);
                    }
                })
            })
        })
    }
    myReadfile(filePath);
    

    遍历结果:

    aa1.txt
    bb1.txt
    新建文本文档.txt

你可能感兴趣的:(Node.js_fs文件系统(三))