.jpg
파일 인 경우 디렉토리 (및 모든 하위 디렉토리)를 이동하고 모든 이미지의 이름을 바꾸 (이동)하려고합니다. 제 코드가 맞다고 생각합니다. 비동기 이름 바꾸기 및 증가 카운터를 사용하여 파일 이름을 늘리고 있습니다. 그러나 어떤 이유로 4 개 정도의 하위 폴더가있는 테스트에서 이미지의 절반 만 이름이 변경됩니다. 콜백 파일 (일단 이미지의 이름이 바뀌면)이 증가 할 때 rename
이 호출되는 모든 파일이 콘솔 목록에 있는지 확인할 때만 증가 이유는 모르겠습니다.노드 : 디렉토리의 모든 파일 이름을 바꾸는 중 일부가 건너 뜁니다.
var fs = require('fs');
var filePrefix = 'new_Images';
var folderName = 'changed';
var counter = 0;
function examine (path) {
fs.readdir(path, function (err, files) {
files.forEach(function (file) {
var oldPath = path + file;
fs.stat(oldPath, function (err, stats) {
if (stats.isDirectory()) {
examine(oldPath + '/');
} else {
var suffix = oldPath.substr(oldPath.length - 3);
if (suffix === 'jpg') {
fs.rename(oldPath, './' + folderName + '/' + filePrefix + counter + '.jpg', function (e) {
if (e) throw new Error('something bad happened');
console.log('Renamed a .jpg file');
console.log(oldPath);
console.log(counter);
counter++;
});
} else if (suffix === 'png') {
fs.rename(oldPath, './' + folderName + './' + filePrefix + counter + '.png', function (e) {
if (e) throw new Error('something bad happened');
console.log('Renamed a .png file');
console.log(oldPath);
console.log(counter);
counter++;
});
}
}
});
});
});
}
examine('./');
이 코드는 모든 파일 이름이 변경되었다는 것을 기록합니다, 그리고 모든 파일이 삭제됩니다,하지만 그들 중 절반 만이 실제로 내가 같은데요