js实现操作文件夹
在JavaScript中操作文件夹通常需要依赖Node.js的fs模块(文件系统模块)或第三方库。以下是几种常见操作的方法:
创建文件夹
使用fs.mkdir或fs.mkdirSync(同步版本)创建文件夹:
const fs = require('fs');
// 异步创建
fs.mkdir('newFolder', (err) => {
if (err) throw err;
console.log('文件夹创建成功');
});
// 同步创建
try {
fs.mkdirSync('newFolder');
console.log('文件夹创建成功');
} catch (err) {
console.error(err);
}
读取文件夹内容
使用fs.readdir或fs.readdirSync读取文件夹内容:
fs.readdir('targetFolder', (err, files) => {
if (err) throw err;
files.forEach(file => {
console.log(file);
});
});
删除文件夹
使用fs.rmdir或fs.rmdirSync(注意:文件夹必须为空):

fs.rmdir('emptyFolder', (err) => {
if (err) throw err;
console.log('文件夹删除成功');
});
递归操作文件夹
使用fs-extra等第三方库简化递归操作:
const fs = require('fs-extra');
// 递归创建
fs.ensureDir('path/to/deep/folder');
// 递归删除
fs.remove('path/to/folder');
检查文件夹是否存在
使用fs.existsSync(同步方法):
if (fs.existsSync('folderPath')) {
console.log('文件夹存在');
} else {
console.log('文件夹不存在');
}
监听文件夹变化
使用fs.watch监听文件夹变化:

fs.watch('targetFolder', (eventType, filename) => {
console.log(`事件类型: ${eventType}`);
if (filename) {
console.log(`文件名: ${filename}`);
}
});
路径操作
结合path模块处理路径:
const path = require('path');
const fullPath = path.join(__dirname, 'folder', 'subfolder');
console.log(fullPath); // 输出完整路径
注意事项:
- 异步方法推荐配合
async/await或Promise使用 - 敏感操作(如删除)建议先检查路径有效性
- 生产环境建议添加完善的错误处理
- 浏览器端JavaScript无法直接操作文件系统(需通过或File System Access API)
对于复杂需求,可考虑以下方案:
- 批量操作:使用
glob模式匹配文件 - 高级监控:使用
chokidar库替代fs.watch - 跨平台路径处理:坚持使用
path模块






