파일 확장자 변경하기 Node.js에서 fs.rename 사용법
문제 상황
코딩을 하다보면 파일의 이름을 바꾸거나 확장자를 변경해야 할 때가 있습니다. Node.js에서는 fs.rename
메소드를 사용해 이 작업을 수행할 수 있습니다. 하지만 이 메소드를 사용하면서 발생하는 문제가 있을 수 있습니다. 해당 문제의 오류 코드는 Error: ENOENT: no such file or directory
입니다. 이 문제를 어떻게 해결할 수 있는지 알아봅시다.
해결 방안 1: 경로 확인하기
먼저 파일이 저장된 경로를 정확하게 입력했는지 확인해야 합니다. 파일 경로에 오류가 있으면 fs.rename
메소드가 제대로 작동하지 않습니다. Node.js에서 경로를 다룰 때는 path
모듈을 사용하면 유용합니다. 이 모듈을 사용하면 파일 경로를 쉽게 다룰 수 있습니다.
1
2
3
const path = require('path');
const oldPath = path.join(__dirname, 'oldFile.txt');
const newPath = path.join(__dirname, 'newFile.txt');
해결 방안 2: 콜백 함수 사용하기
fs.rename
메소드는 비동기로 작동합니다. 따라서 이 메소드가 완료되었는지 확인하기 위해 콜백 함수를 사용할 수 있습니다. 콜백 함수는 작업이 끝나면 호출되는 함수입니다. 에러가 발생하면 이를 캐치하여 대처할 수 있습니다.
1
2
3
4
5
6
7
8
9
const fs = require('fs');
fs.rename(oldPath, newPath, function(err) {
if (err) {
console.log('에러 발생:', err);
} else {
console.log('파일 이름 변경 성공');
}
});
해결 방안 3: 동기 메소드 사용하기
비동기 방식이 아닌 동기 방식으로 파일 이름을 바꾸고 싶다면 fs.renameSync
메소드를 사용할 수 있습니다. 이 메소드는 작업이 완료될 때까지 다음 코드의 실행을 막습니다.
1
2
3
4
5
6
try {
fs.renameSync(oldPath, newPath);
console.log('파일 이름 변경 성공');
} catch (err) {
console.log('에러 발생:', err);
}
이 세 가지 해결 방안을 적용하면 fs.rename
메소드를 효과적으로 사용하여 파일의 이름이나 확장자를 변경할 수 있습니다. 특히, 경로 설정과 콜백 함수 사용은 에러를 미리 잡아낼 수 있어 중요한 단계입니다. 이 정보가 여러분의 코딩 작업에 도움이 되길 바랍니다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.