fs.rmdir()方法用于删除给定路径下的目录。还可以递归使用它来删除嵌套目录。
用法:
fs.rmdir( path, options, callback )
参数:此方法接受上述和以下所述的三个参数:
- path:它包含必须删除的目录的路径。它可以是字符串,缓冲区或URL。
- options:该对象可用于指定将影响操作的可选参数。它具有三个可选参数:
- recursive:它是一个布尔值,它指定是否执行递归目录删除。在这种模式下,如果找不到指定的路径并且在失败时重试该操作,则不会报告错误。默认值为false。
- maxRetries:它是一个整数值,它指定Node.js由于任何错误而失败时将尝试执行该操作的次数。在给定的重试延迟后执行操作。如果递归选项未设置为true,则忽略此选项。默认值为0。
- retryDelay:它是一个整数值,它指定重试操作之前的等待时间(以毫秒为单位)。如果递归选项未设置为true,则忽略此选项。默认值为100毫秒。
- callback:执行该方法时将调用该函数。
- err:如果操作失败,将引发此错误。
以下示例说明了Node.js中的fs.rmdir()方法:
范例1:本示例使用fs.rmdir()方法删除目录。
// Node.js program to demonstrate the
// fs.rmdir() method
// Import the filesystem module
const fs = require('fs');
// Get the current filenames
// in the directory
getCurrentFilenames();
fs.rmdir("directory_one", () => {
console.log("Folder Deleted!");
// Get the current filenames
// in the directory to verify
getCurrentFilenames();
});
// Function to get current filenames
// in directory
function getCurrentFilenames() {
console.log("\nCurrent filenames:");
fs.readdirSync(__dirname).forEach(file => {
console.log(file);
});
console.log("\n");
}
输出:
Current filenames: directory_one index.js package.json Folder Deleted! Current filenames: index.js package.json
范例2:本示例将fs.rmdir()方法与递归参数一起使用以删除嵌套目录。
// Node.js program to demonstrate the
// fs.rmdir() method
// Import the filesystem module
const fs = require('fs');
// Get the current filenames
// in the directory
getCurrentFilenames();
// Trying to delete nested directories
// without the recursive parameter
fs.rmdir("directory_one", {
recursive:false,
}, (error) => {
if (error) {
console.log(error);
}
else {
console.log("Non Recursive:Directories Deleted!");
}
});
// Using the recursive option to delete
// multiple directories that are nested
fs.rmdir("directory_one", {
recursive:true,
}, (error) => {
if (error) {
console.log(error);
}
else {
console.log("Recursive:Directories Deleted!");
// Get the current filenames
// in the directory to verify
getCurrentFilenames();
}
});
// Function to get current filenames
// in directory
function getCurrentFilenames() {
console.log("\nCurrent filenames:");
fs.readdirSync(__dirname).forEach(file => {
console.log(file);
});
console.log("\n");
}
输出:
Current filenames: directory_one index.js package.json [Error:ENOTEMPTY:directory not empty, rmdir 'G:\tutorials\nodejs-fs-rmdir\directory_one'] { errno:-4051, code:'ENOTEMPTY', syscall:'rmdir', path:'G:\\tutorials\\nodejs-fs-rmdir\\directory_one' } Recursive:Directories Deleted! Current filenames: index.js package.json
参考: https://nodejs.org/api/fs.html#fs_fs_rmdir_path_options_callback
相关用法
注:本文由纯净天空筛选整理自sayantanm19大神的英文原创作品 Node.js | fs.rmdir() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。