[GAS][Googleドライブ]ファイル名を一括変換するツール その3

GAS

どうも。つじけ(tsujikenzo)です。このシリーズでは 「Googleドライブのファイル名を一括変換しよう」 について、全3回でご紹介します。今日は最終回です。

前回のおさらい

前回は、変換後のファイル名をスプレッドシートで準備しました。

今回は、「ファイル名を変換しよう」 をお届けします。

ファイル名を変更する

スクリプトエディタで作業します。

前回取得した、2次元配列をつかって、ファイルオブジェクトを取得しながら、setName()メソッドで変換していきます。

  for (const record of renames) {
    const id = record[0];
    const rename = record[2];
    const file = DriveApp.getFileById(id);
    file.setName(rename);
  }

コードを実行すると、このようにファイル名が変換されます。 

関数の切り分け

コードが少し長くなってきたので、ファイル名の取得と、ファイル名を変換する処理を、関数に切り分けましょう。

1つ目は、ファイル名を取得する関数です。

/**
  * 指定したフォルダからファイルIDとファイル名を取得する関数
  * @return{Array} e.g [[id,元ファイル名,変換後のファイル名]]
  */
function getFileIdNames() {

  //フォルダからファイルを取得する
  const folder = DriveApp.getFolderById('Folder ID');
  const files = folder.getFiles();
  const fileArray = [];

  //2次元配列の作成
  while (files.hasNext()) {
    const file = files.next();
    const id = file.getId();
    const name = file.getName().replace(/\..+$/, "");
    fileArray.push([id, name]);
  }

  //スプレッドシートに貼り付ける
  const sheet = SpreadsheetApp.getActiveSheet();
  const range = sheet.getRange(2, 1, fileArray.length, fileArray[0].length);
  range.setValues(fileArray);

}

2つ目は、スプレッドシートの値を取得し、ファイル名を変換する関数です。

function setRename() {

  //スプレッドシートの値を取得する
  const sheet = SpreadsheetApp.getActiveSheet();
  const lastLow = sheet.getLastRow();
  const renames = sheet.getRange(2, 1, lastLow - 1, 3).getValues();

  //ファイル名を変更する
  for (const record of renames) {
    const id = record[0];
    const rename = record[2];
    const file = DriveApp.getFileById(id);
    file.setName(rename);
  }

}

ファイル名を元に戻したい!

なぜ関数を切り分けたかというと、もし、ファイル名の変換を万が一間違ったときに、スプレッドシートの値を使って元の状態に戻すためです。

ファイル名を元に戻すばあいは、スプレッドシートのH列やI列などに、元ファイル名をコピペして逃がしておきます。 

逃がしておいた元ファイル名をE列にコピペして、setRename()関数を実行すればOKです。(E列に入力していた式は消えてしまうのでもう一度入力しましょう) 

元のファイル名に戻せました。 

関数の運用例

関数を切り分けることにより、さまざまな活用方法が考えられます。

GASは、定期的に実行される時限式トリガーを設定できるのが強みです。

  • ある特定のフォルダを定期的にスキャンして、ファイル名一覧をスプレッドシートに出力する
  • ファイル名に特定のキーワードが含まれていたら、ファイル名の前方に特定のキーワードを追加する
  • 関数をカスタムメニューに追加し、任意のタイミングでファイル名を取得、変更する

まとめ

以上で、「ファイル名を変換しよう」 をお届けしました。

Rename後のファイルを自動で移動したり、削除するコードは、また機会があればご紹介できればと思います。

このシリーズの目次

  1. [GAS][Googleドライブ]ファイル名を一括変換するツール その1
  2. [GAS][Googleドライブ]ファイル名を一括変換するツール その2
  3. [GAS][Googleドライブ]ファイル名を一括変換するツール その3
タイトルとURLをコピーしました