如何使用 Node 獲取檔案的詳細資訊

每個檔案都有一組我們可以使用 Node 檢視的詳細資訊。

特別是使用 fs 模組提供的 stat() 方法。

您可以呼叫它並傳遞檔案路徑,一旦 Node 獲取了檔案詳細資訊,它將調用您傳遞的回調函數,該函數帶有2個參數:錯誤訊息和檔案統計資訊:

const fs = require('fs')
fs.stat('/Users/flavio/test.txt', (err, stats) => {
 if (err) {
 console.error(err)
 return
 }
 //我們可以在 `stats` 中存取檔案統計資訊
})

Node還提供了一個同步方法,它會阻塞線程,直到檔案統計資訊準備好:

const fs = require('fs')
try {
 const stats = fs.statSync('/Users/flavio/test.txt')
} catch (err) {
 console.error(err)
}

檔案資訊存儲在 stats 變數中。我們可以使用 stats 提取哪些類型的資訊?

有很多,包括:

  • 使用 stats.isFile()stats.isDirectory() 判斷檔案是目錄還是檔案
  • 使用 stats.isSymbolicLink() 判斷檔案是否為符號連結
  • 使用 stats.size 獲取檔案大小(以位元組為單位)

還有其他高級方法,但在日常編程中,您將主要使用上述方法。

const fs = require('fs')
fs.stat('/Users/flavio/test.txt', (err, stats) => {
 if (err) {
 console.error(err)
 return
 }

 stats.isFile() // 為 true
 stats.isDirectory() // 為 false
 stats.isSymbolicLink() // 為 false
 stats.size // 1024000(等於1MB)
})