Google Apps Script

【初心者向け】Google Apps Scriptで指定フォルダ内のすべてのファイルを取得する方法

スポンサーリンク

Googleドライブに保存しているファイルをまとめて取得したいと思ったことはありませんか?

たとえば「特定のフォルダ内のファイル名を一覧化したい」
「処理対象のファイルをまとめて操作したい」
といった場面で役立つのが、Google Apps Script(GAS)です。

この記事では、指定したフォルダ内のすべてのファイルを取得する方法を初心者向けに解説します。


Google Apps Scriptでフォルダ内のファイルを取得する方法

Google Apps Scriptでは、DriveAppクラスを使ってGoogleドライブを操作できます。
特定のフォルダに含まれるファイルを取得する場合、Folder.getFiles()メソッドを利用します。


使用するメソッドと構文

  • 対象メソッドFolder.getFiles()
  • 引数:なし
  • 戻り値FileIterator(ファイルを順番に取り出せるオブジェクト)

表で整理すると以下のようになります。

項目内容
メソッドFolder.getFiles()
引数なし
戻り値FileIterator

このFileIteratorwhileループで回すことで、フォルダ内のすべてのファイルを順番に取得できます。


サンプルコード

function sample() {
  // フォルダID(スクリプトプロパティから取得)
  const FOLDER_ID = PropertiesService.getScriptProperties().getProperty("FOLDER_ID");
  
  // 対象フォルダを取得
  const targetFolder = DriveApp.getFolderById(FOLDER_ID);
  
  // フォルダ内のファイルを取得
  const files = targetFolder.getFiles();
  
  // すべてのファイルを処理
  while (files.hasNext()) {
    let file = files.next();
    Logger.log(file.getName()); // ファイル名をログ出力
  }
}

プロパティ設定について

上記コードでは、フォルダIDをPropertiesServiceから取得しています。
スクリプトプロパティの設定方法は以下の記事が参考になります。


実行時の注意点と活用例

実際にコードを動かす際には、いくつかの注意点があります。
まず、対象のフォルダに対してスクリプトを実行するアカウントがアクセス権限を持っていることを確認してください。
閲覧権限しかない場合や、共有設定が不十分な場合はファイルを取得できません。

さらに、フォルダ内に大量のファイルが保存されているケースでは処理に時間がかかることがあります。
Google Apps Scriptには実行時間の上限があるため、必要に応じて条件を加えて対象を絞り込む、または処理を複数回に分けるなどの工夫が必要です。

活用方法としては、取得したファイル名をスプレッドシートに書き出してリスト化することで、資産管理や進捗確認に役立てることができます。
また、拡張子を条件に加えて特定の種類のファイル(例:PDFやスプレッドシートのみ)を処理対象にする、といった応用も可能です。
こうした工夫によって、日常的な業務を大幅に効率化することができるでしょう。

よくある質問(FAQ)

Q
サブフォルダ内のファイルも取得できますか?
A

getFiles()ではサブフォルダ内のファイルは取得できません。再帰的に処理する必要があります。

Q
ファイルの種類を絞り込む方法はありますか?
A

getFilesByType(MimeType.PDF)などを使うことで、特定の種類のファイルだけを取得可能です。

Q
フォルダIDはどうやって確認しますか?
A

Googleドライブで対象フォルダを開き、URLの「folders/」以降の部分がフォルダIDです。


まとめ

Google Apps ScriptのFolder.getFiles()メソッドを使えば、指定したフォルダ内のすべてのファイルを簡単に取得できます。
ファイル管理や自動化処理の第一歩として活用してみてください。
慣れてきたらスプレッドシートへの出力やサブフォルダ対応などに発展させるのもおすすめです。

タイトルとURLをコピーしました