fs模块 之 文件夹的操作(创建、读取、删除)

本文详细介绍了如何在Node.js中使用fs模块进行文件夹的创建、递归创建、读取文件夹内容以及删除文件夹(包括空目录和非空目录)。通过示例代码展示了这些操作的实现方法。
摘要由CSDN通过智能技术生成

一、创建文件夹

(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('目录已被删除');
    })
})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

想想aw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值