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


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


fs.close()方法用於異步關閉給定的文件描述符,從而清除與之關聯的文件。這將允許文件描述符重用於其他文件。在文件描述符上執行其他操作時,在文件描述符上調用fs.close()可能會導致未定義的行為。

用法:

fs.close( fd, callback )

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



  • fd:它是一個整數,表示要關閉的文件的文件描述符。
  • callback:該方法執行時將調用該函數。
    • err:如果方法失敗,將拋出此錯誤。

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

範例1:本示例顯示文件描述符的關閉。

// Node.js program to demonstrate the 
// fs.close() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
// Get the file descriptor of the given path 
file_descriptor = fs.openSync("example.txt"); 
console.log("The file descriptor is:", file_descriptor); 
  
// Close the file descriptor 
fs.close(file_descriptor, (err) => { 
  if (err) 
    console.error('Failed to close file', err); 
  else { 
    console.log("\n> File Closed successfully"); 
  } 
});

輸出:

The file descriptor is:3

> File Closed successfully

範例2:此示例顯示了文件描述符的關閉,並嘗試再次訪問該關閉的文件描述符。

// Node.js program to demonstrate the 
// fs.close() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
// Get the file descriptor of the given path 
file_descriptor = fs.openSync("example.txt"); 
console.log("The file descriptor is:", file_descriptor); 
  
console.log("\n> Finding the stats of the file"); 
try { 
  
  // Attempting to find stats of file before closing 
  statsObj = fs.fstatSync(file_descriptor); 
  console.log("Stats of the file generated"); 
  
  // Closing the file descriptor 
  console.log("\n> Closing the file descriptor"); 
  fs.close(file_descriptor, (err) => { 
    if (err) 
      console.error("Failed to close file", err); 
    else { 
      console.log("File Closed successfully"); 
  
      try { 
        // Attempting to find stats of file after closing 
        console.log("\n> Finding the stats of the file again"); 
        statsObj = fs.fstatSync(file_descriptor); 
        console.log("Stats of the file generated"); 
      } 
      catch (err) { 
        console.error("Cannot find stats of file", err); 
      } 
    } 
  }); 
  
} catch (err) { 
  console.error("Cannot find stats of file", err); 
}

輸出:

The file descriptor is:3

> Finding the stats of the file
Stats of the file generated

> Closing the file descriptor
File Closed successfully

> Finding the stats of the file again
Cannot find stats of file Error:EBADF:bad file descriptor, fstat
    at Object.fstatSync (fs.js:897:3)
    at G:\tutorials\nodejs-fs-close\index.js:42:23
    at FSReqCallback.oncomplete (fs.js:146:23) {
  fd:3,
  errno:-4083,
  syscall:'fstat',
  code:'EBADF'
}

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




相關用法


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