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


Node.js fs.rename()用法及代碼示例


fs.rename()方法用於將給定舊路徑下的文件異步重命名為給定新路徑。如果目標文件已經存在,它將覆蓋目標文件。

用法:

fs.rename( oldPath, newPath, callback )

參數:此方法接受上述和以下所述的三個參數:


  • oldPath:它包含必須重命名的文件的路徑。它可以是字符串,緩衝區或URL。
  • newPath:它包含必須重命名文件的新路徑。它可以是字符串,緩衝區或URL。
  • callback:執行該方法時將調用該函數。它具有一個可選參數,用於顯示在此過程中發生的任何錯誤。

以下示例說明了Node.js中的fs.rename()方法:

範例1:本示例使用fs.rename()方法重命名文件。

// Node.js program to demonstrate the     
// fs.rename() method  
     
// Import filesystem module 
const fs = require('fs'); 
   
// List all the filenames before renaming 
getCurrentFilenames(); 
   
// Rename the file 
fs.rename('hello.txt', 'world.txt', () => { 
  console.log("\nFile Renamed!\n"); 
   
  // List all the filenames after renaming 
  getCurrentFilenames(); 
}); 
   
// Function to get current filenames 
// in directory 
function getCurrentFilenames() { 
  console.log("Current filenames:"); 
  fs.readdirSync(__dirname).forEach(file => { 
    console.log(file); 
  }); 
}

輸出:

Current filenames:
hello.txt
index.js

File Renamed!

Current filenames:
index.js
world.txt

範例2:本示例使用fs.rename()方法演示文件重命名過程中的錯誤。

// Node.js program to demonstrate the     
// fs.rename() method  
     
// Import filesystem module 
const fs = require('fs'); 
   
// List all the filenames before renaming 
getCurrentFilenames(); 
   
// Rename the file 
fs.rename('hello.txt', 'geeks.txt', (error) => { 
  if (error) { 
      
    // Show the error  
    console.log(error); 
  } 
  else { 
  
    // List all the filenames after renaming 
    console.log("\nFile Renamed\n"); 
   
    // List all the filenames after renaming 
    getCurrentFilenames(); 
  } 
}); 
   
// Function to get current filenames 
// in directory 
function getCurrentFilenames() { 
  console.log("Current filenames:"); 
  fs.readdirSync(__dirname).forEach(file => { 
    console.log(file); 
  }); 
}

輸出:

Current filenames:
index.js
package.json
world.txt
[Error:ENOENT:no such file or directory, rename 
'G:\tutorials\nodejs-fs-rename\hello.txt' ->
'G:\tutorials\nodejs-fs-rename\geeks.txt'] {
  errno:-4058,
  code:'ENOENT',
  syscall:'rename',
  path:'G:\\tutorials\\nodejs-fs-rename\\hello.txt',
  dest:'G:\\tutorials\\nodejs-fs-rename\\geeks.txt'
}

參考: https://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback



相關用法


注:本文由純淨天空篩選整理自sayantanm19大神的英文原創作品 Node.js | fs.rename() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。