创建目录:
const fs = require('fs');
fs.mkdir('./abc', err=>{
console.log('在当前目录下创建abc目录');
});
//递归创建目录
fs.mkdir('./abc/a/b/c/d', {recursive:true}, err=>{
console.log('在当前目录下创建abc目录,abc目录下创建a目录,a目录下创建b目录,……');
});
读取目录:
const fs = require('fs');
fs.readdir('./',(err,files)=>{
console.log(files);
//[ 'a.js', 'a.text', 'b.js', 'node_modules', 'package.json' ]
});
获取目录下的所有文件名:
function getAllFiles(dir) {
let dirPath = path.join(__dirname,dir);
let arr = [];
fn(dirPath);
function fn(dirPath){
const dirents = fs.readdirSync(dirPath,{ withFileTypes:true });
dirents.forEach((dirent,i)=>{
let child = path.join(dirPath,dirent.name);
if(dirent.isDirectory()){
fn(child);
}else{
arr.push(child);
}
});
}
return arr;
}
let arr = getAllFiles('目录名');
console.log(arr);
/*
[
'D:\\demo\\node-babel\\src\\foo\\a.html',
'D:\\demo\\node-babel\\src\\foo\\aa\\aa.txt',
'D:\\demo\\node-babel\\src\\index\\a.html',
]
*/
清空并删除目录:
const fs = require('fs');
function rmDir(dir){
function EmptyDir(dir){
let arr = fs.readdirSync(dir, {withFileTypes:true});
if(!arr[0]){
return;
};
arr.forEach((dirent,index)=>{
if(dirent.isFile()){
fs.unlinkSync(dir+'/'+dirent.name);
}else{
EmptyDir(dir+'/'+dirent.name);
fs.rmdirSync(dir+'/'+dirent.name);
}
});
}
EmptyDir(dir); //清空目录的子孙目录和所有文件
fs.rmdirSync(dir); //删除本目录
}
rmDir('./abc');