nodejs
Node.js에서는 파일 시스템을 다룰 때, 단순히 존재 여부를 확인하는 것보다 더 세밀한 정보를 얻고 싶은 경우가 많습니다. 예를 들어 파일인지 폴더인지, 파일의 크기, 마지막 수정일, 퍼미션 정보 등을 알고 싶다면
이번 글에서는
Node.js의
const fs = require('fs');
const stats = fs.statSync('./uploads/image.png');
console.log('isFile:', stats.isFile());
console.log('isDirectory:', stats.isDirectory());
console.log('파일 크기:', stats.size, 'bytes');
console.log('마지막 수정 시간:', stats.mtime);
위 코드에서는
fs.statSync로 반환되는
const fs = require('fs');
const stat = fs.statSync('./link-to-folder');
console.log(stat.isDirectory()); // 원본 폴더 기준
const lstat = fs.lstatSync('./link-to-folder');
console.log(lstat.isSymbolicLink()); // 링크 파일 여부
지정한 경로가 없거나 권한이 없을 경우 에러가 발생하므로 반드시 try-catch로 감싸는 것이 좋습니다.
try {
const stats = fs.statSync('./not-found.txt');
console.log(stats.size);
} catch (error) {
console.error('파일을 찾을 수 없습니다:', error.message);
}
const fs = require('fs');
const path = require('path');
const dirPath = './uploads';
const files = fs.readdirSync(dirPath);
const onlyFiles = files.filter((name) => {
const fullPath = path.join(dirPath, name);
return fs.statSync(fullPath).isFile();
});
console.log('파일만 추출:', onlyFiles);
간단한 CLI 도구, 배치 처리, 초기 파일 체크 등에는 최적의 선택이 될 수 있습니다.