一、创建文件夹
(1)创建单一文件夹:
fs.mkdir(path,[option],callback);
fs.mkdirSync(path,[option]);
代码示例:创建data文件夹
// mkdir()创建文件夹
// 如果path指定的目录已存在,则报错
const fs=require('fs');
fs.mkdir('./data',(err)=>{
if(err){
console.log(err.message);
return;
}
console.log('文件夹创建成功');
})
(2)递归创建 一层一层的文件夹
fs.mkdir(path,{recursive:true},callback);
fs.mkdirSync(path,{recursive:true});
代码示例:创建data2文件夹,data2文件夹下创建data222文件夹
// mkdir()创建文件夹
// 如果path指定的目录已存在,则报错
const fs=require('fs');
fs.mkdir('./data2/data222',{recursive:true},(err)=>{
if(err){
console.log(err.message);
return;
}
console.log('文件夹创建成功');
})
二、读取文件夹
fs.readdir(path,[option],callback(err,data)=>{});
fs.readdirSync(path,callback(err,data)=>{});
代码示例:读取到data2目录下的内容
const fs=require('fs');
// fs.readdir()通过回调函数返回读到的数组files
// files:数组,子目录或文件的路径
fs.readdir('./data2',(err,files)=>{
if(err){
console.log(err.message);
return;
}
console.log(files);
})
三、删除文件夹 、删除文件夹下的目录(为空与不为空目录)
(1)删除单一文件夹
fs.rmdir(path,[option],callback=>{});
fs.rmdirSync(path,callback=>{});
代码示例:删除lesson5下面的data3文件夹
const fs = require('fs');
fs.rmdir('./data3', err => {
if (err) {
console.log('删除失败');
return;
}
console.log('删除成功');
});
(2)递归删除 一层一层的文件夹
fs.rmdir(path,{recursive:true},callback=>{});
fs.rmdirSync(path,callback=>{});
(3)删除文件夹下的目录
(3-1)删除文件夹下为空的目录 删除data文件夹下为空的b目录
const fs = require('fs');
// rmdir()只能删除空目录。删除data文件夹下为空的b目录。文件=目录
fs.rmdir('./data/b', (err) => {
if (err) {
console.log(err.message);
return;
}
console.log('目录删除成功');
})
(3-2)删除文件夹下不为空的目录 删除data文件夹下不为空的b目录
*先读取目录中的内容
*再删除目录中的内容
*最后删除目录
const fs = require('fs');
// 1.读取目录中的内容 读取b1.txt
fs.readdir('./data/b', (err, files) => {
if (err) {
console.log(err.message);
return;
}
// 2.删除目录中的内容 删除b1.txt
// unlink 不能用于删除文件夹,rm 可以删除文件和文件夹
// 当删除文件、目录时,rm 和 unlink 是完全一样的。
files.forEach(file => {
fs.unlink('./data/b/' + file, (err) => {
if (err) {
console.log(err.message);
return;
}
console.log(file + '已被删除');
})
})
// 3.删除目录 删除b文件
fs.rmdir('./data/b', (err) => {
if (err) {
console.log(err.message);
return;
}
console.log('目录已被删除');
})
})