您的位置:首页 > 汽车 > 时评 > 免费招聘人才网站_中国建筑管网平台_信息流优化师是什么_第一站长网

免费招聘人才网站_中国建筑管网平台_信息流优化师是什么_第一站长网

2025/6/18 0:56:40 来源:https://blog.csdn.net/weixin_46218101/article/details/146204820  浏览:    关键词:免费招聘人才网站_中国建筑管网平台_信息流优化师是什么_第一站长网
免费招聘人才网站_中国建筑管网平台_信息流优化师是什么_第一站长网

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com