みやもとメモ

「Notion」「Google Apps Script」「ブログカスタマイズ」などについて書いていきます。

目次
目次

【GAS】Google Driveでフォルダを取得するパターンまとめ(全件/フォルダ名/検索/ID)

この記事をシェアする

今回はGAS(Google Apps Script)に関して書いていきます。

以前もGASに関する記事を書いています(以下リンク)。

miya-moto-memo.hatenablog.com

上記の記事で、Google Driveでファイルを取得するパターンをまとめています。
今回の記事は、それのフォルダ版です。

ファイルがフォルダに変わっただけで似た内容になりますが、フォルダ版もやっておこうかなと。

それでは本題へ。

やること

紹介する取得パターンは

  • 全件
  • フォルダ名指定
  • 検索
  • ID指定

の4パターンです。
※「MimeType指定」が無いだけで、他は全てファイルと同じです。

取得の際は、以下フォルダのサンプルデータを使用します。

サンプルデータ

フォルダIDはプログラムで使用します。

ちなみに、Googleドライブ全体(DriveApp)を取得対象にすることも出来ます。
ただそれだと取得するデータ量が多すぎるため、上記のフォルダ内を取得対象にしています。

プログラム

プログラムは以下の通りです。

// フォルダ情報
const FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID');
const FOLDER = DriveApp.getFolderById(FOLDER_ID);

/**
 * フォルダ取得
 */
function getFolders() {
  const folders = FOLDER.getFolders();
  outputLog(folders);
}

/**
 * フォルダ取得(フォルダ名指定)
 */
function getFoldersByName() {
  const folders = FOLDER.getFoldersByName('サンプルフォルダ01');
  outputLog(folders);
}

/**
 * フォルダ取得(検索)
 */
function searchFolders() {
  const params = 'title contains "ダミー"';
  const folders = FOLDER.searchFolders(params);
  outputLog(folders);
}

/**
 * フォルダ取得(ID指定)
 */
function getFolderById() {
  const folder = DriveApp.getFolderById(FOLDER_ID);
  console.log(folder.getName());
}

/**
 * ログ出力
 */
function outputLog(folders) {
  while (folders.hasNext()) {
    const folder = folders.next();
    console.log(folder.getName());
  }
}

あらかじめフォルダIDを基にフォルダ情報を取得しておきます。
そこからフォルダ内の情報に対して、色々なパターンで取得します。

ただし、ID指定は例外です。
ドライブ全体(DriveApp)に対して実行します。

なお、プログラム上の「FOLDER」を「DriveApp」に差し替えると、取得対象が「フォルダ内」から「Googleドライブ全体」になります。

プログラム実行

それぞれの関数を実行してみます。

getFolders:全件取得

const folders = FOLDER.getFolders();
プログラム実行:getFolders
取得対象:getFolders

getFoldersByName:フォルダ名指定

const folders = FOLDER.getFoldersByName('サンプルフォルダ01');
プログラム実行:getFoldersByName
取得対象:getFoldersByName

searchFolders:検索

const params = 'title contains "ダミー"';
const folders = FOLDER.searchFolders(params);
プログラム実行:searchFolders
取得対象:searchFolders

getFolderById:ID指定

const folder = DriveApp.getFolderById(FOLDER_ID);
プログラム実行:getFolderById
取得対象:getFolderById

参考リンク

各取得パターンのリファレンスをリンクしておきます。

getFolders

「getFolders」で、全てのフォルダのコレクションを取得します。

なお、「DriveApp」「Folder」それぞれに「getFolders」があります。
取得範囲は「DriveApp=Googleドライブ全体」「Folder=フォルダ内」となります。

developers.google.comdevelopers.google.com

getFoldersByName

「getFoldersByName」で、指定した名前のフォルダのコレクションを取得します。

こちらも「DriveApp」「Folder」それぞれに「getFoldersByName」があります。

developers.google.comdevelopers.google.com

searchFolders

「searchFolders」で、指定した検索条件に合致したフォルダのコレクションを取得します。

こちらも「DriveApp」「Folder」それぞれに「searchFolders」があります。

developers.google.comdevelopers.google.com

検索条件の指定方法に関しては、以下に詳しく載っています。
developers.google.com

getFolderById

「getFolderById」で、指定したIDのフォルダを取得します。

こちらは「DriveApp」にのみ存在するようです。

developers.google.com

おわりに

ということで、「【GAS】Google Driveでフォルダを取得するパターンまとめ」に関してアレコレ書いてみました。

今回挙げた取得パターン以外にもフォルダを取得する方法はあるかもしれませんが、とりあえず自分が知っている範囲で挙げてみました。
ファイルを取得するパターンにかなり似ていました。

この記事が参考になれば幸いです。

関連記事

GAS(Google Apps Script)に関してはいくつか記事にしています。
気になる記事があればぜひ。

GASの活用事例

TOPへ戻る HOMEへ