나는 JS를 사용하는 데 꽤 익숙하므로 최대한 구체적으로 노력할 것입니다. 🙂
-
나는 다른 국가 이름 가진 260 .PNG 파일과 폴더를 가지고 :
Afghanistan.png
,Albania.png
,Algeria.png
, 등 -
다음과 같이 각 국가의 모든 ISO 코드가 포함 된 코드가 포함 된 .json 파일이 있습니다.
{ "AF": "아프가니스탄", "AL": "알바니아", "DZ": "알제리", ... }
- .png 파일의 이름을 소문자로 된 ISO 이름으로 바꾸고 싶습니다. 즉 , 모든
.png
이미지가 포함 된
폴더 에 ,, 등을 입력하고 싶습니다 .af.png
al.png
dz.png
나는 node.js로 이것을 수행하는 방법을 스스로 연구하려고 노력했지만 여기서 조금 길을 잃었고 몇 가지 단서를 많이 고맙게 생각합니다.
미리 감사드립니다!
답변
이를 위해서는 http://nodejs.org/api/fs.html 을 사용해야 fs
합니다.
특히 fs.rename()
기능 :
var fs = require('fs');
fs.rename('/path/to/Afghanistan.png', '/path/to/AF.png', function(err) {
if ( err ) console.log('ERROR: ' + err);
});
새로 읽은 JSON 객체의 키와 값에 대한 루프에 넣으면 일괄 이름 바꾸기 스크립트가 있습니다.
fs.readFile('/path/to/countries.json', function(error, data) {
if (error) {
console.log(error);
return;
}
var obj = JSON.parse(data);
for(var p in obj) {
fs.rename('/path/to/' + obj[p] + '.png', '/path/to/' + p + '.png', function(err) {
if ( err ) console.log('ERROR: ' + err);
});
}
});
(여기서는 .json
파일이 신뢰할 수 있고 파일 이름에 직접 키와 값을 사용하는 것이 안전 하다고 가정합니다 . 그렇지 않은 경우 해당 파일을 제대로 이스케이프해야합니다!)
답변
- fs.readdir (경로, 콜백)
- fs.rename (이전, 신규, 콜백)
통과 http://nodejs.org/api/fs.html
한 가지 중요한 것은 동기화 기능도 사용할 수 있다는 것입니다. (C 프로그램처럼 작동합니다)
답변
답변
Linux / unix OS의 경우 셸 구문을 사용할 수 있습니다.
const shell = require('child_process').execSync ;
const currentPath= `/path/to/name.png`;
const newPath= `/path/to/another_name.png`;
shell(`mv ${currentPath} ${newPath}`);
그게 다야!