當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。