fs.rm()方法用于删除给定路径下的文件。也可以递归地使用它来删除目录。
用法:
fs.rm( path, options, callback );
参数:此方法接受上述和以下所述的三个参数:
- path:它包含必须删除的文件的路径。它可以是字符串,缓冲区或URL。
- options:该对象可用于指定将影响操作的可选参数,如下所示:
- force:它是一个布尔值。如果路径不存在,则将忽略异常。
- recursive:它是一个布尔值,用于指定是否执行递归目录删除。在这种模式下,如果找不到指定的路径并且在失败时重试该操作,则不会报告错误。默认值为false。
- callback:执行该方法时将调用该函数。
- err:如果操作失败,将抛出此错误。
以下示例说明了Node.js中的fs.rm()方法:
范例1:本示例使用fs.rm()方法删除文件。
文件名:index.js
Javascript
// Import necessary modules
let fs = require('fs');
// List files before deleting
getCurrentFilenames();
fs.rm('./dummy.txt', { recursive:true }, (err) => {
if(err){
// File deletion failed
console.error(err.message);
return;
}
console.log("File deleted successfully");
// List files after deleting
getCurrentFilenames();
})
// This will list all files in current directory
function getCurrentFilenames() {
console.log("\nCurrent filenames:");
fs.readdirSync(__dirname).forEach(file => {
console.log(file);
});
console.log("");
}使用以下命令运行index.js文件:
node index.js
输出:
Current filenames: dummy.txt index.js node_modules package-lock.json package.json File deleted successfully Current filenames: index.js node_modules package-lock.json package.json
范例2:本示例将fs.rm()方法与递归参数一起使用以删除目录。
文件名:index.js
Javascript
// Import the filesystem module
const fs = require('fs');
// List the files in current directory
getCurrentFilenames();
// Trying to delete directory without the recursive parameter
fs.rm("./build", { recursive:false }, (err) => {
if (err) {
console.error(err);
}
else {
console.log("Non Recursive:Directory Deleted!");
}
});
// Using the recursive option to delete directory
fs.rm("./build", { recursive:true }, (err) => {
if (err) {
console.error(err);
}
else {
console.log("Recursive:Directory Deleted!");
// List files after delete
getCurrentFilenames();
}
});
// List all files in current directory
function getCurrentFilenames() {
console.log("\nCurrent filenames:");
fs.readdirSync(__dirname).forEach(file => {
console.log(file);
});
console.log("\n");
}使用以下命令运行index.js文件:
node index.js
输出:
Current filenames:
build
index.js
node_modules
package-lock.json
package.json
SystemError [ERR_FS_EISDIR]:Path is a directory:rm returned EISDIR
(is a directory) ./build
at internal/fs/utils.js:688:23
at FSReqCallback.oncomplete (fs.js:184:5) {
code:'ERR_FS_EISDIR',
info:{
code:'EISDIR',
message:'is a directory',
path:'./build',
syscall:'rm',
errno:21
},
errno:[Getter/Setter:21],
syscall:[Getter/Setter:'rm'],
path:[Getter/Setter:'./build']
}
Recursive:Directory Deleted!
Current filenames:
index.js
node_modules
package-lock.json
package.json
参考:https://nodejs.org/api/fs.html#fs_fs_rm_path_options_callback
相关用法
- Node.js console.timeLog()用法及代码示例
- Node.js fs.fsyncSync()用法及代码示例
- Node.js process.nextTick()用法及代码示例
- Node.js GM charcoal()用法及代码示例
- Node.js GM blur()用法及代码示例
- Node.js GM sharpen()用法及代码示例
- Node.js GM drawLine()用法及代码示例
- Node.js GM drawArc()用法及代码示例
- Node.js GM drawPolyline()用法及代码示例
- Node.js GM drawBezier()用法及代码示例
- Node.js GM drawCircle()用法及代码示例
- Node.js GM drawEllipse()用法及代码示例
- Node.js GM drawPolygon()用法及代码示例
注:本文由纯净天空筛选整理自pratikraut0000大神的英文原创作品 Node.js fs.rm() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
