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

推荐订阅源

T
The Blog of Author Tim Ferriss
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
大猫的无限游戏
大猫的无限游戏
月光博客
月光博客
博客园 - Franky
博客园 - 三生石上(FineUI控件)
爱范儿
爱范儿
腾讯CDC
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
T
Tailwind CSS Blog
P
Privacy International News Feed
The Cloudflare Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threat Research - Cisco Blogs
Hugging Face - Blog
Hugging Face - Blog
Project Zero
Project Zero
S
SegmentFault 最新的问题
美团技术团队
WordPress大学
WordPress大学
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
云风的 BLOG
云风的 BLOG
Spread Privacy
Spread Privacy
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
B
Blog
Cisco Talos Blog
Cisco Talos Blog
The GitHub Blog
The GitHub Blog
G
Google Developers Blog
T
The Exploit Database - CXSecurity.com
Simon Willison's Weblog
Simon Willison's Weblog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
Cisco Blogs
NISL@THU
NISL@THU
J
Java Code Geeks
C
CERT Recently Published Vulnerability Notes
T
Tor Project blog
K
Kaspersky official blog
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
I
Intezer
U
Unit 42
博客园 - 聂微东
C
Check Point Blog
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
Latest news
Latest news
博客园 - 司徒正美
G
GRAHAM CLULEY
S
Schneier on Security
V
Visual Studio Blog

6Jyc5p+a

【笔记】Codex学习笔记 【笔记】MicrosoftStore微软商店学习笔记 【笔记】通过NapCat和AstrBot实现QQ机器人 【笔记】部署NapCat 【笔记】部署AstrBot 【笔记】Poetry学习笔记 【笔记】uv学习笔记 【笔记】Nodejs通过mysql2操作MySQL数据库 【笔记】CodeBuddy学习笔记 【笔记】MiMoCode学习笔记 【笔记】OpenCode使用XiaomMiMo作为供应商 【笔记】OpenCode学习笔记 【笔记】IDEA的AiAssistant配置任意Agent 【笔记】IDEA的AiAssistant配置任意Agent 【笔记】MacOS上删除TimeMachine时间机器备份 【笔记】MacOS上部署XiaomiMiloco 【笔记】Docker的上下文 【源码】Python3创建1x1像素的图片 【靶场】xss-labs通关攻略 【靶场】upload-labs通关攻略 【笔记】Brave迁移ProxySwitchyOmega数据到ZeroOmega 【笔记】通过Docker部署DVWA 【笔记】通过Docker部署xss-labs 【笔记】通过Docker部署upload-labs 【笔记】通过Docker部署Vulhub 【笔记】宝塔通过Docker部署SQLI-LABS 【笔记】宝塔部署Docker 【笔记】通过Docker部署SQLI-LABS 【靶场】SQLI-LABS通关攻略 【笔记】MSYS2学习笔记 【笔记】Cygwin学习笔记 【笔记】Windows添加自定义右键菜单项 【笔记】Linux上和MacOS上配置环境变量 【笔记】命令行配置HTTP代理 【笔记】Windows上配置环境变量 【踩坑】Windows上在IDEA中配置Codex报错 【笔记】start学习笔记 【笔记】Windows的CMD命令学习笔记 【笔记】Java的PriorityQueue和PriorityBlockingQueue 【笔记】IDEA通过AIAssistant安装Codex 【笔记】bcrypt学习笔记 【速查表】浏览器默认禁用的不安全端口 【笔记】Astro学习笔记 【代码】Python3实现从NTP服务器同步时间 【笔记】Koa学习笔记 【笔记】Solidity计算字符串的MD5值 【笔记】Hardhat学习笔记 【笔记】Go安装笔记 【笔记】CVE-2024-3094漏洞利用 【笔记】CVE-2026-43284和CVE-2026-43500漏洞利用 【笔记】CVE-2023-3567漏洞利用 【代码】Python3读写M1卡 【笔记】M1卡学习笔记 【笔记】Python3中文转拼音 【代码】Python3生成中国大陆姓名拼音 【代码】Python3爬取中国大陆手机号段 【笔记】Nodejs发送请求 【笔记】Trello通过API添加待办事项 【笔记】Nodejs的流和缓冲区 【笔记】Nodejs的事件 【笔记】CNVD-2020-10487漏洞利用 【笔记】CVE-2017-12617漏洞利用 【笔记】PHP输出源码 【笔记】PHP的Phar 【笔记】通过Docker部署OnlineTools 【笔记】XML学习笔记 【笔记】Windows的用户和组 【笔记】CVE-2006-7243漏洞利用 【代码】JS将目录编号转换为十六进制 【笔记】PHP抑制所有报错 【笔记】HFish学习笔记 【笔记】JumpServer学习笔记 【笔记】Conpot学习笔记 【笔记】南墙WAF学习笔记 【笔记】堡塔云WAF学习笔记 【笔记】Windows的远程桌面服务 【笔记】Windows的防火墙
【笔记】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);

完成

参考文献

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