node.js を使用してファイルの名前を変更する 質問する

node.js を使用してファイルの名前を変更する 質問する

Afghanistan.png、、など、Albania.png異なる国名を持つ 260 個の .png ファイルを含むフォルダーがあります。Algeria.png

次のような各国の ISO コードをすべて含むコードが入った .json ファイルがあります。

{  
  "AF" : "Afghanistan",  
  "AL" : "Albania",  
  "DZ" : "Algeria",  
  ...  
}

.png ファイルの名前を ISO 名を小文字に変更したいと思います。つまり、すべての画像を含むフォルダーに次の入力を入れたいのです.png: af.png、、、など。al.pngdz.png

私はこれを node.js でどうやって行うかを自分で調べようとしましたが、少し迷ってしまい、何かヒントをいただければ幸いです。

ベストアンサー1

そのために以下を使用する必要があります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ファイルが信頼できるものであり、そのキーと値をファイル名に直接使用しても安全であると想定しています。そうでない場合は、必ず適切にエスケープしてください。)

おすすめ記事