如何使用 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)
})