当前位置: 首页 > news >正文

【Node.js入门笔记4---fs 目录操作】

Node.js入门笔记4

  • Node.js---fs 目录操作
  • 一、目录操作
    • 1.fs.mkdir():创建目录。异步,非阻塞。
      • 创建单个目录
      • 创建多个目录
      • 创建目前之前需要确认是否存在:
    • 2. fs.mkdirSync():用于创建一个新的目录。异步,非阻塞。
    • 3.fs.rmdir():删除空目录。异步。
    • 4. fs.rmdirSync():删除空目录。同步。
    • 5. fs.rm()(Node.js 14.4+):递归删除目录及内容。
    • 6. fs.readdir():获取目录下的文件和子目录列表。

Node.js—fs 目录操作

一、目录操作

1.fs.mkdir():创建目录。异步,非阻塞。

语法格式:

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

参数解读:
参数1:必选参数,字符串,表示要创建的目录的路径。
参数2:可选参数,表示以什么编码格式来读取文件。
参数3:必选参数,文件读取完成后,通过回调函数拿到读取的结果。

创建单个目录


const fs = require('fs');fs.mkdir('./new-directory', (err) => {if (err) throw err;console.log('目录创建成功');});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\mkdir.js

如图:
node截图
然后电脑找到这个目录:C:\Users\Administrator\new-directory

node

创建多个目录

const fs = require('fs');// 创建多个目录
fs.mkdir('./new-directory/new-sub-directory', { recursive: true }, (err) => {if (err) throw err;console.log('目录创建成功');
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\mkdir.js

结果:C:\Users\Administrator\new-directory
node截图

创建目前之前需要确认是否存在:

const fs = require('fs');
const path = require('path');const dir = 'myDir';if (!fs.existsSync(dir)) {fs.mkdir(dir, (err) => {if (err) throw err;console.log('目录创建成功');});
} else {console.log('目录已存在');
}
写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】```bash
node C:\Users\Administrator\Desktop\mkdir.js

2. fs.mkdirSync():用于创建一个新的目录。异步,非阻塞。

语法格式

fs.mkdirSync(path[, options])

参数解读:
参数1:必选参数,需要指定一个文件路径的字符串,表示文件的存放路径
参数2:必选参数,表示要写入的内容。

创建单个目录

const fs = require('fs');try {// 创建一个名为 'newDir' 的目录fs.mkdirSync('newDir');console.log('目录创建成功');
} catch (err) {if (err.code === 'EEXIST') {console.log('目录已经存在');} else {console.error('创建目录时出错:', err);}
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\mkdirSync.js

结果如图:C:\Users\Administrator\newDir
在这里插入图片描述
创建多个目录

const fs = require('fs');try {// 递归创建一个嵌套目录 'parent/child/grandchild'fs.mkdirSync('parent/child/grandchild', { recursive: true });console.log('目录递归创建成功');
} catch (err) {console.error('创建目录时出错:', err);
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\mkdirSync.js

3.fs.rmdir():删除空目录。异步。

语法格式:

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

参数解读:
参数1:必选参数,需要指定一个文件路径的字符串,表示要删除的路径。
参数2:可选参数,默认为 false。
参数3:必选参数,回调函数。

// 1.导入fs模块
const fs = require('fs');// 要删除的目录路径
const dirPath = './test';fs.rmdir(dirPath, (err) => {if (err) {if (err.code === 'ENOENT') {console.log('目录不存在');} else if (err.code === 'ENOTEMPTY') {console.log('目录不为空,无法删除');} else {console.error('删除目录时出错:', err);}} else {console.log('目录删除成功');}
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\rmdir.js

4. fs.rmdirSync():删除空目录。同步。

语法格式:

fs.rmdirSync(path[, options])

参数解读:
参数1:必选参数,文件夹路径
参数2:可选参数,options对象或编码字符串

同步进行的就不能用回调函数观察数据是否成功,所有用try catch来捕获问题

const fs = require('fs');// 要删除的目录路径
const dirPath = 'emptyDir';try {fs.rmdirSync(dirPath);console.log('目录删除成功');
} catch (err) {if (err.code === 'ENOENT') {console.log('目录不存在');} else if (err.code === 'ENOTEMPTY') {console.log('目录不为空,无法删除');} else {console.error('删除目录时出错:', err);}
}

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\rmdirSync.js

5. fs.rm()(Node.js 14.4+):递归删除目录及内容。

语法格式:

fs.rm(path, options, callback);

删除单个文件

// 1.导入fs模块
const fs = require('fs');
const filePath = 'example.txt';// 2.删除文件
// 参数1: 文件路径
// 参数2: 回调函数
fs.rm(filePath, (err) => {if (err) {console.error('删除文件时出错:', err);} else {console.log('文件删除成功');}
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\rm.js

递归删除非空目录

const fs = require('fs');const dirPath = 'exampleDir';
// 参数1: 目录路径
// 参数2: 配置对象
// recursive: 是否递归删除子目录和文件
// force: 是否强制删除
// 参数3: 回调函数
fs.rm(dirPath, { recursive: true, force: true }, (err) => {if (err) {console.error('删除目录时出错:', err);} else {console.log('目录及其子目录和文件删除成功');}
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\learning\rm.js

6. fs.readdir():获取目录下的文件和子目录列表。

语法格式:

fs.open(path, flags[, mode], callback)

参数解释:
参数1: 必选参数,文件路径。
参数2: 必选参数,打开文件的方式读写
参数3: 可选参数,设置文件模式(权限),默认为 0666(可读写)
参数4: 必选参数,回调函数。带有两个参数如:callback(err, fd)

// 导入文件系统模块
const fs = require('fs');const directoryPath = '.'; // 当前目录// 参数1: 目录路径
// 参数2: 配置对象
// withFileTypes: 是否返回fs.Dirent对象
// 参数3: 回调函数
fs.readdir(directoryPath, { withFileTypes: true }, (err, files) => {if (err) {console.error('读取目录时出错:', err);return;}files.forEach((file) => {if (file.isDirectory()) {console.log(`${file.name} 是一个目录`);} else {console.log(`${file.name} 是一个文件`);}});
});

写完代码后,需要在terminal控制台输入指令:node 【 js文件的路径】

node C:\Users\Administrator\Desktop\readdir.js

http://www.mrgr.cn/news/94366.html

相关文章:

  • 微信小程序从右向左无限滚动组件封装(类似公告)
  • AI学习——深度学习核心技术深度解析
  • Linux--gdb/cgdb
  • Linux入门 全面整理终端 Bash、Vim 基础命令速记
  • 缓存和客户端数据存储体系(Ark Data Kit)--- 应用数据持久化(首选项持久化、K-V、关系型数据库)持续更新中...
  • Ubuntu20.04安装运行DynaSLAM
  • ArcGIS Pro 车牌分区数据处理与地图制作全攻略
  • 深度学习项目--基于DenseNet网络的“乳腺癌图像识别”,准确率90%+,pytorch复现
  • 考研408-数据结构完整代码 线性表的顺序存储结构 - 顺序表
  • 【Java从入门到精通】一篇文章彻底搞懂:类和对象到底是什么?
  • Mysql-经典实战案例(2)—数据误删如何恢复?
  • 航空电动力系统适航标准要点手册
  • dify+mysql的诗词助手
  • 【从零开始学习计算机科学】数据库系统(七)并发控制技术
  • LLM(1):了解大语言模型
  • 音视频入门基础:RTP专题(18)——FFmpeg源码中,获取RTP的音频信息的实现(上)
  • React Next项目中导入Echart世界航线图 并配置中文
  • 【Golang】第五弹----函数
  • 【从零开始学习计算机科学】数据库系统(五)DBMS查询处理
  • 神经网络的数据集处理