当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Node.js fs.rm()用法及代码示例


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

相关用法


注:本文由纯净天空筛选整理自pratikraut0000大神的英文原创作品 Node.js fs.rm() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。