js实现文件夹
JavaScript 实现文件夹操作的方法
在 JavaScript 中,文件夹操作通常涉及 Node.js 的文件系统模块(fs)。以下是在 Node.js 环境中创建、读取和删除文件夹的方法:
创建文件夹
使用 fs.mkdir() 或 fs.mkdirSync() 方法创建文件夹:
const fs = require('fs');
// 异步创建文件夹
fs.mkdir('newFolder', (err) => {
if (err) throw err;
console.log('Folder created');
});
// 同步创建文件夹
try {
fs.mkdirSync('newFolder');
console.log('Folder created');
} catch (err) {
console.error(err);
}
递归创建多级文件夹
使用 { recursive: true } 选项创建多级目录:
fs.mkdir('path/to/newFolder', { recursive: true }, (err) => {
if (err) throw err;
});
读取文件夹内容
使用 fs.readdir() 或 fs.readdirSync() 读取文件夹内容:
// 异步读取
fs.readdir('folderName', (err, files) => {
if (err) throw err;
files.forEach(file => {
console.log(file);
});
});
// 同步读取
try {
const files = fs.readdirSync('folderName');
files.forEach(file => {
console.log(file);
});
} catch (err) {
console.error(err);
}
删除文件夹
使用 fs.rmdir() 或 fs.rmdirSync() 删除空文件夹:
// 异步删除
fs.rmdir('folderName', (err) => {
if (err) throw err;
console.log('Folder deleted');
});
// 同步删除
try {
fs.rmdirSync('folderName');
console.log('Folder deleted');
} catch (err) {
console.error(err);
}
递归删除非空文件夹
Node.js 14+ 提供了 { recursive: true } 选项:
fs.rm('folderName', { recursive: true }, (err) => {
if (err) throw err;
console.log('Folder deleted');
});
检查文件夹是否存在
使用 fs.existsSync() 检查文件夹是否存在:
if (fs.existsSync('folderName')) {
console.log('Folder exists');
} else {
console.log('Folder does not exist');
}
浏览器环境中的文件夹操作
在浏览器环境中,可以使用 File System Access API(需要用户授权):

async function handleFolder() {
const dirHandle = await window.showDirectoryPicker();
for await (const entry of dirHandle.values()) {
console.log(entry.name);
}
}
注意:浏览器 API 需要 HTTPS 环境或 localhost 才能正常工作。





