惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
U
Unit 42
MyScale Blog
MyScale Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
量子位
IT之家
IT之家
The GitHub Blog
The GitHub Blog
F
Fortinet All Blogs
Recent Announcements
Recent Announcements
V
Visual Studio Blog
G
Google Developers Blog
Last Week in AI
Last Week in AI
雷峰网
雷峰网
博客园 - 聂微东
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
博客园 - 司徒正美
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
月光博客
月光博客
aimingoo的专栏
aimingoo的专栏

6Jyc5p+a

【笔记】HermesAgent学习笔记 【笔记】DeepSeekHarness学习笔记 【笔记】Rollup的PluginBabel插件 【笔记】Rollup学习笔记 【笔记】Gulp的BrowserSync插件 【笔记】Node-SSH学习笔记 【笔记】Tapable学习笔记 【笔记】Highlight.js学习笔记 【笔记】Marked学习笔记 【笔记】Webpack通过schema-utils实现Loader参数校验 【笔记】Webpack实现TreeShaking 【笔记】Webpack的WebpackBundleAnalyzer插件 【代码】校验信用卡号码 【笔记】Webpack的SpeedMesureWebpackPlugin插件 【笔记】Codex配置Brave浏览器的MCP 【笔记】Webpack的CSSMinimizerWebpackPlugin插件 【笔记】FastNodeManager学习笔记 【笔记】Terser学习笔记 【笔记】Codex配置Wireshark的MCP 【笔记】Codex配置Unity的MCP 【笔记】Codex配置Blender的MCP 【笔记】Codex配置IDEA的MCP 【笔记】Browserslist学习笔记 【笔记】Codex学习笔记 【笔记】MicrosoftStore微软商店学习笔记 【笔记】通过NapCat和AstrBot实现QQ机器人 【笔记】部署NapCat 【笔记】部署AstrBot 【笔记】Poetry学习笔记 【笔记】uv学习笔记
【笔记】Nodejs的文件和目录操作
6Jyc5p+a · 2026-05-30 · via 6Jyc5p+a

前言

Nodejs通过fs模块实现对文件和目录操作,通过path模块实现对路径的操作

fs模块

引入依赖

1
const fs = require("fs");

创建目录

1
2
3
fs.mkdir("<dir>", function (err) {
...
});

获取当前目录内的文件和目录列表

  • 获取文件名和目录名列表
1
2
3
fs.readdir("<dir>", function (err, files) {
...
});
  • 获取文件对象和目录对象列表
1
2
3
fs.readdir("<dir>", { withFileTypes: true }, function (err, files) {
...
});

获取是否是目录

1
2
3
4
5
fs.readdir("<dir>", { withFileTypes: true }, function (err, files) {
for (file of files) {
const isDirectory = file.isDirectory();
}
});

重命名文件或目录

  • 如果包含路径可以移动文件或目录
1
2
3
fs.rename("<file_old>", "<file_new>", function (err) {
...
});

path模块

引入依赖

1
const path = require("path");

拼接路径

__dirname:当前js文件所在的目录

1
2
3
const result = path.join("usr", "/local", "./bin", "../");

console.log(result);

拼接绝对路径

  • 给定的参数从右向左处理,直到已经拼接成了绝对路径终止拼接
    • 如果给定的参数中包含绝对路径,则从右向左拼接,直至该参数停止
    • 如果给定的参数中不包含绝对路径,则从左向右拼接,直至所有参数,最后再拼接当前路径的绝对路径
  • 拼接过程中,尾部斜杠会被删除
  • 拼接过程中,空字符串会被忽略
/usr/main.js
1
2
3
const result = path.resolve("./local", "bin", "../main.js");

console.log(result);
/usr/main.js
1
2
3
const result = path.resolve("/local", "/bin", "../main.js");

console.log(result);
/usr/main.js
1
2
3
const result = path.resolve();

console.log(result);

获取文件名

1
2
3
result = path.basename("/usr/main.js");

console.log(result);

获取文件后缀名

1
2
3
result = path.extname("/usr/main.js");

console.log(result);

完成

参考文献

哔哩哔哩——黑马程序员
哔哩哔哩——前端开发专业教程