总结Node.js中9种fs模块文件操作方法(文件夹递归删除知识)

yizhihongxing

总结Node.js中9种fs模块文件操作方法(文件夹递归删除知识)

文件操作是Node.js的一个重要功能。fs模块是Node.js中实现文件I/O的核心模块,提供了很多文件操作方法。本文将总结fs模块中的9种常用文件操作方法,并详细说明每种方法的用法和参数。

1. fs.stat

fs.stat 方法用于获取文件/目录的基本信息,包括文件大小、创建时间、修改时间、访问时间等。其定义如下:

fs.stat(path, callback)

其中 path 参数为文件或目录的路径,callback 参数为回调函数。回调函数的第一个参数为错误信息,第二个参数为文件/目录的状态信息(fs.Stats 对象)。

示例:

const fs = require('fs');

fs.stat('/path/to/file', (err, stats) => {
  if (err){
    console.error(err);
    return;
  }

  console.log(stats.isFile());  // 是否是文件
  console.log(stats.isDirectory());  // 是否是目录
  console.log(stats.size);  // 文件/目录大小(单位为字节)
});

2. fs.unlink

fs.unlink 方法用于删除文件。其定义如下:

fs.unlink(path, callback)

其中 path 参数为文件的路径,callback 参数为回调函数。回调函数的第一个参数为错误信息。

示例:

const fs = require('fs');

fs.unlink('/path/to/file', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('文件删除成功');
});

3. fs.readdir

fs.readdir 方法用于读取目录下的文件列表。其定义如下:

fs.readdir(path, callback)

其中 path 参数为目录的路径,callback 参数为回调函数。回调函数的第一个参数为错误信息,第二个参数为目录下的文件列表数组。

示例:

const fs = require('fs');

fs.readdir('/path/to/directory', (err, files) => {
  if (err) {
    console.error(err);
    return;
  }
  files.forEach(file => {
    console.log(file);
  });
});

4. fs.readFile

fs.readFile 方法用于读取文件的内容。其定义如下:

fs.readFile(file[, options], callback)

其中 file 参数为文件的路径,options 参数为可选的读取选项,callback 参数为回调函数。回调函数的第一个参数为错误信息,第二个参数为文件内容(Buffer 对象)。

示例:

const fs = require('fs');

fs.readFile('/path/to/file', (err, data) => {
  if (err){
    console.error(err);
    return;
  }
  console.log(data.toString());
});

5. fs.writeFile

fs.writeFile 方法用于写入文件内容。如果文件不存在,则会创建新文件,如果存在,则会覆盖原有内容。其定义如下:

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

其中 file 参数为文件的路径,data 参数为要写入的内容,options 参数为可选的写入选项,callback 参数为回调函数。回调函数的第一个参数为错误信息。

示例:

const fs = require('fs');

fs.writeFile('/path/to/file', 'Hello world', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('文件写入成功');
});

6. fs.appendFile

fs.appendFile 方法用于追加文件内容。如果文件不存在,则会创建新文件,如果存在,则会在原有内容后面追加新内容。其定义如下:

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

其中 file 参数为文件的路径,data 参数为要追加的内容,options 参数为可选的写入选项,callback 参数为回调函数。回调函数的第一个参数为错误信息。

示例:

const fs = require('fs');

fs.appendFile('/path/to/file', 'Hello world', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('追加内容成功');
});

7. fs.mkdir

fs.mkdir 方法用于创建目录。其定义如下:

fs.mkdir(path[, options], callback)

其中 path 参数为目录的路径,options 参数为可选的创建选项,callback 参数为回调函数。回调函数的第一个参数为错误信息。

示例:

const fs = require('fs');

fs.mkdir('/path/to/directory', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('目录创建成功');
});

8. fs.rmdir

fs.rmdir 方法用于删除空目录。如果目录不为空,则会抛出错误。其定义如下:

fs.rmdir(path, callback)

其中 path 参数为目录的路径,callback 参数为回调函数。回调函数的第一个参数为错误信息。

示例:

const fs = require('fs');

fs.rmdir('/path/to/directory', (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('目录删除成功');
});

9. fs.rmdirSync

fs.rmdirSync 方法与 fs.rmdir 方法类似,都是用于删除空目录。但 fs.rmdirSync 是同步方法,会阻塞进程,直到目录删除成功或抛出错误。其定义如下:

fs.rmdirSync(path)

其中 path 参数为目录的路径。

示例:

const fs = require('fs');

try {
  fs.rmdirSync('/path/to/directory');
  console.log('目录删除成功');
} catch (err) {
  console.error(err);
}

文件夹递归删除知识

如果要删除整个目录(包括目录下的所有文件和子目录),可以使用递归方式,即先删除子目录,再删除父目录。下面是一种实现方式:

const fs = require('fs');
const path = require('path');

function deleteFolderRecursive(path) {
  if (fs.existsSync(path)) {
    fs.readdirSync(path).forEach((file, index) => {
      const curPath = path + '/' + file;
      if (fs.statSync(curPath).isDirectory()) {
        deleteFolderRecursive(curPath);
      } else {
        fs.unlinkSync(curPath);
      }
    });
    fs.rmdirSync(path);
    console.log('目录删除成功');
  }
}

deleteFolderRecursive('/path/to/directory');

上述代码将先遍历目录下的所有文件和子目录,如果是目录,则递归调用本函数,否则直接删除文件,最后删除当前目录。

结语

本文总结了fs模块中的9种常用文件操作方法,并提供了详细的示例说明。通过学习这些方法,可以轻松处理文件/目录的读写、创建、删除等操作。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:总结Node.js中9种fs模块文件操作方法(文件夹递归删除知识) - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • 从reflect metadata理解Nest实现原理

    从 reflect metadata理解Nest实现原理 Nest是一个基于Express(Express是Node.js的Web框架)的Node.js服务器框架。它使用了它自己的模块化系统,能让你轻松地在Node.js上搭建可伸缩的服务端应用。在实现过程中,Nest使用了reflect-metadata模块,来实现一些核心的功能,下面是详细的讲解: 什么是…

    node js 2023年6月8日
    00
  • JavaScript模板引擎应用场景及实现原理详解

    JavaScript模板引擎是一种将模板和数据进行拼接的工具,它能够将数据和模板字符串结合起来,生成最终的HTML字符串。本文将从应用场景和实现原理两个方面进行详细讲解。 JavaScript模板引擎的应用场景 JavaScript模板引擎有广泛的应用场景,它通常用于以下几个方面: 响应式Web应用程序:JavaScript模板引擎能够根据数据的变化自动地更…

    node js 2023年6月8日
    00
  • nodeJs爬虫的技术点总结

    请允许我以markdown文本形式详细讲解“nodeJs爬虫的技术点总结”的完整攻略,包括以下方面内容: 爬虫简介 爬虫主要是指通过程序自动化获取某些网站上的数据,并进行处理或存储。爬虫的基本流程通常包括抓取网页、解析网页、提取数据和存储数据。Node.js是一种非常适合来开发爬虫的技术,因为它提供了强大的异步I/O和处理大量数据的能力。 抓取网页 抓取网页…

    node js 2023年6月8日
    00
  • 快速掌握Node.js事件驱动模型

    快速掌握Node.js事件驱动模型攻略 Node.js采用事件驱动模型(Event-Driven Model),这种模型非常适合处理高并发的I/O密集型应用程序。在Node.js中,我们可以利用EventEmitter来实现事件的发布和订阅,从而实现全局的事件监听和响应。本篇攻略将介绍Node.js事件驱动模型的详细说明以及示例演示。 Node.js事件驱动…

    node js 2023年6月8日
    00
  • 开发Node CLI构建微信小程序脚手架的示例

    下面是完整的攻略: 开发Node CLI构建微信小程序脚手架的示例 1. 确定开发工具和技术栈 作为一名网站开发者,我们需要使用一些工具来开发Node CLI。这里我们推荐使用Node.js作为开发环境,并借助yargs和fs-extra这两个依赖库进行开发。 2. 创建项目和安装依赖 首先,我们需要在本地创建一个新的Node.js项目,并安装yargs和f…

    node js 2023年6月8日
    00
  • Egret引擎开发指南之发布项目

    首先我们需要明确一下,Egret引擎是一款基于HTML5 Canvas的跨平台游戏引擎,支持iOS、Android、Web、Windows等多平台开发。发布项目是我们在Egret开发完成后将游戏上传至各大应用商店或者网站进行发布的过程。 一、发布准备 在发布前,我们需要完成以下准备工作: 检查游戏是否符合各大应用商店或者网站的规定要求,如版权、广告、隐私政策…

    node js 2023年6月8日
    00
  • 使用node.js对音视频文件加密的实例代码

    加密音视频文件是保护个人信息安全的重要手段之一,Node.js作为一种后端语言,可以通过其丰富的模块来实现音视频文件加密。下面就是使用Node.js对音视频文件加密的实例代码攻略。 准备工作 在开始之前,我们需要做以下准备工作: 安装Node.js环境; 安装crypto模块,该模块是Node.js中加密相关的模块,可通过以下命令进行安装: npm inst…

    node js 2023年6月8日
    00
  • node.js 动态执行脚本

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,可以让 JavaScript 运行在服务器端。Node.js 动态执行脚本是它的一个非常重要的特性,下面我将详细讲解一下如何实现。 第一步:安装 Node.js 如果你还没有安装 Node.js,请先在官网下载安装最新的稳定版 Node.js:https://nodejs…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部