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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //公共引用 varfs =require('fs'), path =require('path'); 1、读取文...
    才気莮孒阅读 847评论 0 1
  • Node.js 常用工具 util 是一个Node.js 核心模块,提供常用函数的集合,用于弥补核心JavaScr...
    FTOLsXD阅读 560评论 0 2
  • 一、核心模块和对象 核心模块的意义 常用内置模块path:处理文件路径fs:操作文件系统child_process...
    EndEvent阅读 4,449评论 0 1
  • cmd命令: ./ 当前目录 ../ 上一级 dir 查看当前目录 ls 查看当前目录下文件 win...
    3hours阅读 563评论 0 1
  • 问:Android 中的线程有那些,原理与各自特点 答: - 有 AsyncTask、HandlerThread、...
    前行的乌龟阅读 273评论 0 4