どうも。つじけ(tsujikenzo)です。このシリーズでは 「Googleドライブのファイル名を一括変換しよう」 について、全3回でご紹介します。
今日は第1回目で、「Googleドライブからファイル名とIDを取得しよう」 です。
はじめに
最近はリモートワークが浸透し、Googleドライブを活用する機会も多くなりました。
今回は、GASでGoogleドライブのファイル名を一括変換する方法をご紹介します。
GAS(Google Apps Script)ってなに?という方は、ノンプロ研のGAS初級講座受講をおすすめします。
プロジェクトの流れ
今回のプロジェクトは、大きく分けて、3段階あります。
とくにむずかしいことはありませんが、全体の流れを把握しておきましょう。
- ファイル名一覧を取得してスプレッドシートに貼り付ける
- 変更するファイル名をスプレッドシートに準備する
- ファイル名を変更する
事前準備
フォルダの準備
まずは、Googleドライブに、作業用フォルダを準備しましょう。
フォルダ名はなんでも構いません。今回は 「Rename用フォルダ」 としました。
サンプルとして、PDFをいくつかアップロードしましょう。
スプレッドシートの準備
新規スプレッドシートを作成します。(保存場所はどこでもかまいません。)
ファイル名はなんでも構いませんが、今回は 「Rename用シート」 としました。
コンテナバインドスクリプトの準備
コンテナバインドスクリプトを作成します。プロジェクト名はなんでもかまいませんが 「Rename用」 としておきます。
Googleドライブからファイル名を取得する
まずは、Rename用フォルダを取得します。フォルダIDを確認しましょう。
https://drive.google.com/drive/folders/{FOLDER ID}
ここからは、スクリプトエディタで作業していきます。
フォルダ内のファイルを、ファイルオブジェクトとして取得し、while文を使って、ファイルIDとファイル名を2次元配列に格納します。
const folder = DriveApp.getFolderById('FOLDER ID');
const files = folder.getFiles();
const fileArray = [];
while (files.hasNext()) {
const file = files.next();
const id = file.getId();
const name = file.getName().replace(/\..+$/, "");
fileArray.push([id,name]);
}
console.log(fileArray);
初回実行時は、認証を求められますので、各自でご対応お願いいたします。
コードを実行すると、このように、[ファイルID、ファイル名]という1次元配列を持った、2次元配列のログが出力されます。
スプレッドシートに貼り付ける
この2次元配列を、スプレッドシートに貼り付けるコードはこちらです。
const sheet = SpreadsheetApp.getActiveSheet();
const range = sheet.getRange(1,1,fileArray.length,fileArray[0].length);
range.setValues(fileArray);
コードを実行すると、スプレッドシートに貼り付けされます。
今回は、ここまでです。
本日のコード全文はこちらです。
function myFunction() {
//フォルダからファイルを取得する
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(1, 1, fileArray.length, fileArray[0].length);
range.setValues(fileArray);
}
まとめ
以上で、Googleドライブからファイル名とIDの一覧を取得して、スプレッドシートに貼り付けしました。
次回は、「変換用ファイル名をスプレッドシートで準備しよう」 についてお届けします。