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

相关文章

  • NodeJs——入门必看攻略

    NodeJs——入门必看攻略 Node.js是一个基于Chrome V8 引擎的JavaScript 运行环境,Node.js使用高效的事件驱动,非阻塞I/O模型,使得它轻量又高效。本攻略将详细讲解Node.js的基础知识,包括安装和使用方法、模块化编程、文件操作以及HTTP模块。 1. 安装和使用 安装Node.js 访问 Node.js官网,下载最新版本…

    node js 2023年6月8日
    00
  • BootStrap Jstree 树形菜单的增删改查的实现源码

    下面是 BootStrap Jstree 树形菜单的增删改查的实现源码的完整攻略。 前置知识 在学习本篇攻略之前,需要对以下知识有所了解: HTML、CSS、JavaScript 的基本语法和使用 jQuery 和 Bootstrap 框架的基本使用 jstree 树形菜单插件的基本使用 环境搭建 首先,需要在你的项目中引入以下依赖: <link re…

    node js 2023年6月8日
    00
  • Node.js查询MySQL并返回结果集给客户端的全过程

    下面提供一个完整的“Node.js查询MySQL并返回结果集给客户端的全过程”。 步骤一:安装和配置 首先,在本地安装Node.js和MySQL服务。然后,使用npm安装mysql模块,它是连接到MySQL的标准Node.js库。可以在终端中运行以下命令进行安装: npm install mysql 接下来,在项目中引入mysql模块,以便使用它的API: …

    node js 2023年6月8日
    00
  • npm配置国内镜像资源+淘宝镜像的方法

    在中国大陆地区使用npm下载和安装包时,由于网络环境的问题,访问npm官方镜像源会非常缓慢或者根本连不上,这时我们就需要使用国内的镜像资源,其中使用淘宝镜像是比较常见的方法之一。下面是npm配置国内镜像资源+淘宝镜像的方法: 1. 使用npm命令行设置镜像源 首先,我们可以直接在npm命令行中设置镜像源: 1.1 将npm镜像源切换到淘宝镜像 npm con…

    node js 2023年6月8日
    00
  • nodejs报digital envelope routines::unsupported错误的最新解决方法

    当在Node.js中使用TLS(Transport Layer Security)连接时,可能会遇到digital envelope routines::unsupported错误,这个错误通常表示您的证书格式不被TLS支持。以下是最新的解决方法: 1. 查看证书格式 首先需要使用以下命令来查看您的证书格式: openssl x509 -in /path/t…

    node js 2023年6月8日
    00
  • 理解Javascript_01_理解内存分配原理分析

    理解Javascript_01_理解内存分配原理分析 背景 Javascript 是一种动态、弱类型的编程语言,使用广泛,包括 Web 开发、桌面应用、移动应用等。Javascript 的运行需要内存支持,理解内存分配原理是深入学习 Javascript 的关键。 内存基础知识 在计算机中,内存被分为若干个存储单元,每个存储单元的大小是一个字节。我们可以通过…

    node js 2023年6月8日
    00
  • Node模块化开发实例解析

    Node模块化开发实例解析 在Node.js中,使用模块化开发可以使代码更易于维护和扩展。本文将介绍如何使用Node.js进行模块化开发,包括如何创建和引用模块。 1. 创建模块 在Node.js中,一个模块是一个独立的文件,可以包含任意JavaScript代码。一个模块可以导出一个或多个功能,供其他模块使用。下面是一个创建模块的示例: 1.1 示例一:导出…

    node js 2023年6月8日
    00
  • node.js中PC端微信小程序包解密的处理思路

    我们来详细讲解一下 “node.js中PC端微信小程序包解密的处理思路”的完整攻略。 1. 前置知识 在开始讲解解密步骤之前,我们需要了解一下以下内容: 1.1 微信小程序包的结构 微信小程序包的结构主要由两个部分组成: .wxapkg:这是压缩过的代码和资源文件。 project.config.json:这是微信开发者工具中的项目配置文件,里面会包含小程序…

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