删除目录和删除文件
Node.js中用于删除目录的异步函数语法格式如下:
fs.rmdir(path, callback);
其中,callback 为回调函数且无参数。
删除目录时有一个要求,就是该目录必须为空,所有删除目录的操作还需要读取目录和删除文件操作进行支持。Node.js 中用于删除文件的异步函数语法格式如下:
fs.unlink(path, callback);
其中,两个参数与删除目录完全相同。
下面通过一个案例演示删除前面案例中创建的testDemo4-8目录,在testDemo4-8目录上一级创建文件demo4-10.js,在该文件中添加如下代码。
demo4-10.js:
/*
* 删除目录
*/
var fs=require('fs');
console.log('读取/testDemo4-8目录');
fs.readdir('./testDemo4-8/',function(err,files) {
if (err) {
return console.error(err);
}
//遍历所有文件
files.forEach(function (file){
//输出文件名
console.log(file);
//删除文件
fs.unlink('./testDemo4-8/'+file,function(err){
if(err){
return console.error(err);
}
console.log(file+'文件删除成功!');
});
});
console.log('准备删除/testDemo4-8目录');
fs.rmdir('./testDemo4-8/',function(err){
if(err){
return error(err);
}
console.log("目录删除成功!");
});
});
在上述代码中,首先读取要删除目录中的文件内容,然后在遍历文件数组files,第15行使用fs.unlink()函数删除读取到的文件,需要注意的是,参数file是文件名加扩展名,删除文件时需要拼接完整的文件路径,否则该函数会自动为文件添加当前执行文件的路径,导致删除错误,最后在第23行使用fs.rmdir() 函数删除空目录。
打开终端,在终端界面输入命令node demo4-10.js
,执行demo4-10.js,执行结果如图所示:
打开testDemo4-8目录所在的文件夹,可以看到成功删除了testDemo4-8目录以及目录里面的所有文件。