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


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


fs.readdir()方法用於異步讀取給定目錄的內容。此方法的回調返回目錄中所有文件名的數組。 options參數可用於更改從方法返回文件的格式。

用法:

fs.readdir( path, options, callback )

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



  • path:它保存必須從中讀取內容的目錄路徑。它可以是字符串,緩衝區或URL。
  • options:它是一個對象,可用於指定將影響方法的可選參數。它具有兩個可選參數:
    • encoding:它是一個字符串值,該字符串值指定給回調參數指定的文件名使用哪種編碼。默認值為“ utf8”。
    • withFileTypes:這是一個布爾值,它指定是否將文件作為fs.Dirent對象返回。默認值為“ false”。
  • callback:執行該方法時將調用該函數。
    • err:如果操作失敗,將引發此錯誤。
    • files:它是包含目錄中文件的String,Buffer或fs.Dirent對象的數組。

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

範例1:本示例使用fs.readdir()方法返回目錄中的文件名或文件對象。

// Node.js program to demonstrate the 
// fs.readdir() method 
  
// Import the filesystem module 
const fs = require('fs'); 
  
// Function to get current filenames 
// in directory 
fs.readdir(__dirname, (err, files) => { 
  if (err) 
    console.log(err); 
  else { 
    console.log("\nCurrent directory filenames:"); 
    files.forEach(file => { 
      console.log(file); 
    }) 
  } 
}) 
  
// Function to get current filenames 
// in directory with "withFileTypes" 
// set to "true"  
  
fs.readdir(__dirname,  
  { withFileTypes:true }, 
  (err, files) => { 
  console.log("\nCurrent directory files:"); 
  if (err) 
    console.log(err); 
  else { 
    files.forEach(file => { 
      console.log(file); 
    }) 
  } 
})

輸出:

Current directory filenames:
index.js
package.json
text_file_a.txt
text_file_b.txt

Current directory files:
Dirent { name:'index.js', [Symbol(type)]:1 }
Dirent { name:'package.json', [Symbol(type)]:1 }
Dirent { name:'text_file_a.txt', [Symbol(type)]:1 }
Dirent { name:'text_file_b.txt', [Symbol(type)]:1 }

範例2:本示例使用fs.readdir()方法僅返回擴展名為“.txt”的文件名。

// Node.js program to demonstrate the 
// fs.readdir() method 
  
// Import the filesystem module 
const fs = require('fs'); 
const path = require('path'); 
  
// Function to get current filenames 
// in directory with specific extension 
fs.readdir(__dirname, (err, files) => { 
  if (err) 
    console.log(err); 
  else { 
    console.log("\Filenames with the .txt extension:"); 
    files.forEach(file => { 
      if (path.extname(file) == ".txt") 
        console.log(file); 
    }) 
  } 
})

輸出:

Filenames with the .txt extension:
text_file_a.txt
text_file_b.txt

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




相關用法


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