首页 > 其他 > 详细

fs模块

时间:2021-05-02 21:49:04      阅读:15      评论:0      收藏:0      [点我收藏+]

fs模块是Nodejs内置的模块

FS模块全称: file System 文件系统。

作用是用于操作文件夹以及文件的,使用的时候要引入fs模块(通过require引入)。

操作文件是异步的,因此fs模块为每一个操作提供了两个方法:

  同步方法(sync),异步方法(回调函数监听)

创建文件

  fs.appendFile(fileName, content, callback)

    fileName: 创建的文件名称(合法的路径)

      content: 追加的内容

      callback: 回调函数

      参数表示错误异常

  如果创建成功 则返回null,如果创建失败 则返回一个错误对象

  技术分享图片

 

 

 

创建文件夹

  fs.mkdir(pathName, callback)

    pathName: 文件夹名称

    callback: 回调函数

    参数表示错误异常

  如果创建成功 则返回null,如果创建失败 则返回一个错误对象

  技术分享图片

 

删除文件

  fs.unlink(fileName, callback)

    fileName: 要删除的文件

    callback: 回调函数

    参数表示错误异常

  如果删除成功 则返回null,如果删除失败 则返回一个错误对象

  技术分享图片

 

 

 

删除文件夹

  fs.rmdir(dirName, callback)

    注意: 该方法只能删除空文件夹

    dirName: 要删除的文件夹名称

    callback: 回调函数

    参数表示错误异常

  如果删除成功 则返回null,如果删除失败 则返回一个错误对象

   技术分享图片

 

修改文件(文件名,剪切文件,修改文件夹,剪切文件夹)

  fs.rename(oldName, newName, callback)

    oldName: 原来的路径

    newName:   新的路径

    callback: 回调函数

    参数表示错误异常

  如果修改成功 则返回null,如果修改失败 则返回一个错误对象

  技术分享图片

 

 

读取文件

  fs.readFile(fileName, callback)

    fileName: 要读取的文件名称

    callback: 回调函数,有两个参数:

      第一个参数:错误异常

        如果创建成功 则返回null,

        如果创建失败 则返回一个错误对象

      第二个参数 读取成功时候的数据

        默认是Buffer数据 我们可以调用toString方法转为字符串之后查看

 

 

   技术分享图片

 

 

 

判断文件的状态

  fs.stat(targetName, callback)

    targetName: 要判断的文件名称

    callback: 回调函数,有两个参数:

      第一个参数是错误异常

      第二个 是状态对象

         状态对象:

            isDirectory()  判断是文件还是文件夹 true为文件夹  false为文件

            isFile() 判断是否为文件

            技术分享图片

 

  技术分享图片

 

 

读取文件夹

  fs.readdir(dirName, callback)

    dirName: 读取的文件夹的名称

    callback: 回调函数,有两个参数

      第一个参数表示错误异常

      第二个参数是一个数组数组中的每一项都是读取到的每一个文件或者文件夹

  技术分享图片

 

检测文件是否存在 

  fs.exists(path, callback)

    path:检测的路径

    callback:返回布尔值,存在为true,不存在为false

  技术分享图片

 

封装方法 删除非空目录

  

// 引入方法
let { readdirSync, statSync, unlinkSync, rmdirSync } = require(‘fs‘);

function del(dir) {
    // 防止同步操作出现错误,中断程序执行
    try {
        // 非空目录不能直接删除,
        // 读取目录中,所有文件和文件夹
        let arr = readdirSync(dir);
        // 逐一遍历,如果文件,将其删除,如果是文件夹递归调用该方法将其内部文件和文件夹删除
        // 遍历数组
        for (let item of arr) {
            // 获取完整路径
            let path = dir + ‘/‘ + item;
            // item代表目录中的每一个文件或者是文件夹
            let state = statSync(path)
            // console.log(state);
            // 判断是不是文件夹
            if (state.isDirectory()) {
                // 递归调用删除
                del(path)
            } else {
                // 直接删除文件
                unlinkSync(path)
            }
        }
        // 删除外部的文件夹
        rmdirSync(dir)
    } catch (e) {
        console.log(e)
    }
}

del(‘a‘)

 

fs模块

原文:https://www.cnblogs.com/yess/p/14726449.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!