1. ホーム
  2. javascript

[解決済み] node.jsでファイル名を変更する

2022-09-06 16:47:44

質問

私はJSを使うのがかなり初めてなので、できる限り具体的に説明したいと思います :)

  • 私は、異なる国名を持つ260の.pngファイルを持つフォルダを持っています。 Afghanistan.png , Albania.png , Algeria.png など。

  • .jsonファイルには、このように各国のISOコードをすべて記載したコードの断片があります。

{  
  "AF" : "アフガニスタン",  
  "AL" : "アルバニア".DZ" : "アルジェリア",  
  "DZ" : "アルジェリア",  
  ...  
}

  • .png ファイルの名前を ISO 名の小文字で変更したいと思います。つまり、私のフォルダーに以下のような入力があり、すべての .png の画像があります。 af.png , al.png , dz.png など。

node.jsでどのように行うか自分で調べようとしていたのですが、ここで少し迷ってしまい、何か手がかりがあれば大変ありがたいです。

ありがとうございます。

どのように解決するのですか?

この問題を解決するには fs を使用する必要があります。 http://nodejs.org/api/fs.html

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