今回はGAS(Google Apps Script)に関して書いていきます。
以前もGASに関する記事を書いています(以下リンク)。
上記の記事で、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();
getFoldersByName:フォルダ名指定
const folders = FOLDER.getFoldersByName('サンプルフォルダ01');
searchFolders:検索
const params = 'title contains "ダミー"'; const folders = FOLDER.searchFolders(params);
getFolderById:ID指定
const folder = DriveApp.getFolderById(FOLDER_ID);
参考リンク
各取得パターンのリファレンスをリンクしておきます。
getFolders
「getFolders」で、全てのフォルダのコレクションを取得します。
なお、「DriveApp」「Folder」それぞれに「getFolders」があります。
取得範囲は「DriveApp=Googleドライブ全体」「Folder=フォルダ内」となります。
getFoldersByName
「getFoldersByName」で、指定した名前のフォルダのコレクションを取得します。
こちらも「DriveApp」「Folder」それぞれに「getFoldersByName」があります。
searchFolders
「searchFolders」で、指定した検索条件に合致したフォルダのコレクションを取得します。
こちらも「DriveApp」「Folder」それぞれに「searchFolders」があります。
developers.google.comdevelopers.google.com
検索条件の指定方法に関しては、以下に詳しく載っています。
developers.google.com
おわりに
ということで、「【GAS】Google Driveでフォルダを取得するパターンまとめ」に関してアレコレ書いてみました。
今回挙げた取得パターン以外にもフォルダを取得する方法はあるかもしれませんが、とりあえず自分が知っている範囲で挙げてみました。
ファイルを取得するパターンにかなり似ていました。
この記事が参考になれば幸いです。