Node.js 파일 통계
모든 파일에는 Node.js를 사용하여 검사할 수 있는 세부 정보 세트가 함께 제공됩니다. 특히 fs 모듈에서 제공하는 stat()
메서드를 사용합니다.
파일 경로를 전달하여 호출하면 Node.js가 파일 세부 정보를 가져온 후 오류 메시지 및 파일 통계라는 두 개의 매개 변수와 함께 전달하는 콜백 함수를 호출합니다.
js
import fs from 'node:fs'
fs.stat('/Users/joe/test.txt', (err, stats) => {
if (err) {
console.error(err)
}
// `stats`에서 파일 통계에 접근할 수 있습니다.
})
Node.js는 파일 통계가 준비될 때까지 스레드를 차단하는 동기 메서드도 제공합니다.
js
import fs from 'node:fs'
try {
const stats = fs.statSync('/Users/joe/test.txt')
} catch (err) {
console.error(err)
}
파일 정보는 stats 변수에 포함되어 있습니다. 통계를 사용하여 어떤 종류의 정보를 추출할 수 있습니까?
다음을 포함하여 많이 있습니다.
stats.isFile()
및stats.isDirectory()
를 사용하여 파일이 디렉터리인지 파일인지 여부stats.isSymbolicLink()
를 사용하여 파일이 심볼릭 링크인지 여부stats.size
를 사용하여 파일 크기(바이트)
다른 고급 메서드도 있지만 일상적인 프로그래밍에서 사용하는 대부분은 다음과 같습니다.
js
import fs from 'node:fs'
fs.stat('/Users/joe/test.txt', (err, stats) => {
if (err) {
console.error(err)
return
}
stats.isFile() // true
stats.isDirectory() // false
stats.isSymbolicLink() // false
stats.size // 1024000 //= 1MB
})
원하는 경우 fs/promises
모듈에서 제공하는 promise 기반 fsPromises.stat()
메서드를 사용할 수도 있습니다.
js
import fs from 'node:fs/promises'
try {
const stats = await fs.stat('/Users/joe/test.txt')
stats.isFile() // true
stats.isDirectory() // false
stats.isSymbolicLink() // false
stats.size // 1024000 //= 1MB
} catch (err) {
console.log(err)
}
파일 시스템 모듈 설명서에서 fs 모듈에 대해 자세히 읽을 수 있습니다.