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

总结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日

相关文章

  • 如何自定义node版本,实现node多版本控制方式

    下面是关于如何自定义node版本,实现node多版本控制方式的攻略,具体步骤如下: 第一步:安装nvm nvm 全称 Node Version Manager,是 Node.js 的版本管理工具,使用它可以轻松切换和管理多个 Node.js 版本。 以 Mac 系统为例,可以通过 Homebrew 安装 nvm,命令如下: brew install nvm …

    node js 2023年6月8日
    00
  • NodeJS创建最简单的HTTP服务器

    请听我详细讲解如何创建最简单的HTTP服务器。 步骤一:安装NodeJS 首先,我们需要在本机安装NodeJS。NodeJS是用JavaScript编写的服务器端运行时环境,可以让JavaScript在服务器端运行。如果你已经安装了NodeJS,则可以跳过此步骤。 你可以从NodeJS官网https://nodejs.org/下载安装包,安装完成后,打开终端…

    node js 2023年6月8日
    00
  • javascript对select标签的控制(option选项/select)

    下面是 JavaScript 对 Select 标签的控制的完整攻略。 1、选项控制 可以使用 JavaScript 来控制 Select 标签的选中项,以及增加、修改、删除选项等操作。 1.1 获取 Select 元素 可以通过 document.getElementById() 或者 document.querySelector() 等方法获取 Sele…

    node js 2023年6月8日
    00
  • express 项目分层实践详解

    我来为您讲解一下“express 项目分层实践详解”的完整攻略。 1. 概述 在使用 express 框架进行 Web 开发时,对于项目的分层结构问题,使用合理的分层结构能够让我们更好地组织代码,提高开发效率,并且容易维护,降低代码耦合度。本文将详细介绍 express 项目分层实践的攻略。 2. 分层架构概述 在一个具有典型分层结构的 express 应用…

    node js 2023年6月8日
    00
  • javascript中的107个基础知识收集整理 推荐

    JavaScript基础知识收集整理攻略 概述 近年来,JavaScript在Web领域的应用越来越广泛,成为Web开发人员必备技能之一。为了帮助大家更好地学习JavaScript,本攻略汇总总结了107个JavaScript基础知识,包括变量、数据类型、数组、函数、对象等,从而帮助初学者更好地掌握JavaScript编程。 变量 变量的定义 变量是存储数据…

    node js 2023年6月8日
    00
  • 详解Node 定时器

    关于“详解Node 定时器”的攻略,可以从以下几个方面进行讲解: 一、什么是定时器 Node.js中的定时器指的是setTimeout和setInterval这两个函数。setTimeout控制单个事件在指定的时间后发生,setInterval可以控制事件在指定的时间间隔内一直发生。 二、setTimeout的使用 setTimeout的语法如下: setT…

    node js 2023年6月8日
    00
  • 详解NODEJS基于FFMPEG视频推流测试

    下面是详解“详解NODEJS基于FFMPEG视频推流测试”的完整攻略: 1. 前置条件 在开始之前,我们需要做好以下准备工作: 安装 Node.js 环境(版本不限)。 安装 FFMPEG 工具。可以在 ffmpeg.org 下载相关版本。 熟悉基础的 Node.js 知识和 JavaScript 编程。 2. 安装依赖 首先,我们需要使用 npm 进行依赖…

    node js 2023年6月8日
    00
  • Node在Controller层进行数据校验的过程详解

    当使用Node.js开发网站时,经常需要在Controller层对请求参数进行数据校验。对于数据校验,我们可以使用第三方的Node.js库,如Joi、Validator等。 以下是Node在Controller层进行数据校验的过程详解: 1.安装数据校验库 在Node.js中,常用的数据校验库有Joi和Validator,可以使用npm安装它们。运行以下命令…

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