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


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


fs.access()方法用於測試給定文件或目錄的權限。可以使用文件訪問常量將要檢查的權限指定為參數。也可以通過使用按位或運算符創建具有多個文件常量的掩碼來檢查多個文件權限。

注意:不建議在調用fs.open(),fs.readFile()或fs.writeFile()之前使用fs.access()方法檢查文件的可訪問性,因為它會引入競爭狀態,因為文件狀態可能會在之後被其他進程更改考試。

用法:



fs.access( path, mode, callback )

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

  • path:它是一個字符串,緩衝區或URL,表示必須對其權限進行測試的文件或目錄的路徑。
  • mode:它是一個整數值,表示要測試的許可。邏輯OR運算符可用於分隔多個權限。它可以具有值fs.constants.F_OKfs.constants.R_OKfs.constants.W_OKfs.constants.X_OK。它是一個可選參數。默認值為fs.constants.F_OK
  • callback:該方法執行時將調用該函數。
    • err:如果方法失敗,將拋出此錯誤。

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

範例1:本示例顯示了文件讀寫權限的測試。

// Node.js program to demonstrate the 
// fs.access() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
// Allowing only read permission 
console.log("Giving only read permission to the user"); 
fs.chmodSync("example_file.txt", fs.constants.S_IRUSR); 
  
// Test the read permission 
fs.access('example_file.txt', fs.constants.R_OK, (err) => { 
  console.log('\n> Checking Permission for reading the file'); 
  if (err) 
    console.error('No Read access'); 
  else
    console.log('File can be read'); 
}); 
  
// Test both the read and write permissions 
fs.access('example_file.txt', fs.constants.R_OK  
                  | fs.constants.W_OK, (err) => { 
  console.log('\n> Checking Permission for reading" 
                          + " and writing to file'); 
  if (err) 
    console.error('No Read and Write access'); 
  else
    console.log('File can be read and written'); 
});

輸出:

Giving only read permission to the user

> Checking Permission for reading the file
File can be read

> Checking Permission for reading and writing to file
No Read and Write access

範例2:此示例顯示文件的測試(如果存在)。

// Node.js program to demonstrate the 
// fs.access() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
// Test the if the file exists 
fs.access('example_file.txt', fs.constants.F_OK, (err) => { 
  console.log('\n> Checking if the file exists'); 
  
  if (err) { 
    console.error('File does not exist'); 
  
    // Create the file 
    console.log('\nCreating the file'); 
    fs.writeFileSync("example_file2.txt", "Test File"); 
  
    // Test the if the file exists again 
    fs.access('example_file2.txt', fs.constants.F_OK, (err) => { 
      console.log('\n> Checking if the file exists'); 
      if (err) 
        console.error('File does not exist'); 
      else { 
        console.log('File does exist'); 
      } 
    }); 
  } 
  else { 
    console.log('File does exist');     
  } 
});

輸出:

> Checking if the file exists
File does not exist

Creating the file

> Checking if the file exists
File does exist

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




相關用法


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