今回はGAS(Google Apps Script)に関して書いていきます。
以前もGASに関する記事を書いています(以下リンク)。
上記の記事で、Googleドライブの指定フォルダ配下のファイル一覧を取得する方法について書いています。
ファイルを取得する方法は他にも色々あります。
自分が知っている範囲ではありますが、まとめてみようと思います。
それでは本題へ。
やること
紹介する取得パターンは
- 全件
- ファイル名指定
- MimeType指定
- 検索
- ID指定
の5パターンです。
取得の際は、以下フォルダのサンプルデータを使用します。
ファイルID、フォルダIDはプログラムで使用します。
ファイルIDは「対象ファイルを右クリック→共有→リンクをコピー」で取得し、そこからファイルIDを取り出します。
プログラム
プログラムは以下の通りです。
// ファイルID const FILE_ID = PropertiesService.getScriptProperties().getProperty('FILE_ID'); // フォルダ情報 const FOLDER_ID = PropertiesService.getScriptProperties().getProperty('FOLDER_ID'); const FOLDER = DriveApp.getFolderById(FOLDER_ID); /** * ファイル取得 */ function getFiles() { const files = FOLDER.getFiles(); outputLog(files); } /** * ファイル取得(ファイル名指定) */ function getFilesByName() { const files = FOLDER.getFilesByName('サンプルデータ_画像.png'); outputLog(files); } /** * ファイル取得(MimeType指定) */ function getFilesByType() { const files = FOLDER.getFilesByType(MimeType.GOOGLE_SLIDES); outputLog(files); } /** * ファイル取得(検索) */ function searchFiles() { const params = 'title contains "サンプルデータ" and mimeType contains "spreadsheet"'; const files = FOLDER.searchFiles(params); outputLog(files); } /** * ファイル取得(ID指定) */ function getFileById() { const file = DriveApp.getFileById(FILE_ID); console.log(file.getName()); } /** * ログ出力 */ function outputLog(files) { while (files.hasNext()) { const file = files.next(); console.log(file.getName()); } }
あらかじめフォルダIDを基にフォルダ情報を取得しておきます。
そこからフォルダ内の情報に対して、色々なパターンで取得します。
ただし、ID指定は例外です。
ドライブ全体(DriveApp)に対して実行します。
なお、プログラム上の「FOLDER」を「DriveApp」に差し替えると、取得対象が「フォルダ内」から「Googleドライブ全体」になります。
プログラム実行
それぞれの関数を実行してみます。
getFiles:全件取得
const files = FOLDER.getFiles();
getFilesByName:ファイル名指定
const files = FOLDER.getFilesByName('サンプルデータ_画像.png');
getFilesByType:MimeType指定
const files = FOLDER.getFilesByType(MimeType.GOOGLE_SLIDES);
searchFiles:検索
const params = 'title contains "サンプルデータ" and mimeType contains "spreadsheet"'; const files = FOLDER.searchFiles(params);
getFileById:ID指定
const file = DriveApp.getFileById(FILE_ID);
参考リンク
各取得パターンのリファレンスをリンクしておきます。
getFiles
「getFiles」で、全てのファイルのコレクションを取得します。
なお、「DriveApp」「Folder」それぞれに「getFiles」があります。
取得範囲は「DriveApp=Googleドライブ全体」「Folder=フォルダ内」となります。
getFilesByName
「getFilesByName」で、指定した名前のファイルのコレクションを取得します。
こちらも「DriveApp」「Folder」それぞれに「getFilesByName」があります。
getFilesByType
「getFilesByType」で、指定したMimeType(メディアタイプ)のファイルのコレクションを取得します。
こちらも「DriveApp」「Folder」それぞれに「getFilesByType」があります。
developers.google.comdevelopers.google.com
用意されているMimeType(メディアタイプ)は以下に載っています。
developers.google.com
searchFiles
「searchFiles」で、指定した検索条件に合致したファイルのコレクションを取得します。
こちらも「DriveApp」「Folder」それぞれに「searchFiles」があります。
developers.google.comdevelopers.google.com
検索条件の指定方法に関しては、以下に詳しく載っています。
developers.google.com
おわりに
ということで、「【GAS】Googleドライブでファイルを取得するパターンまとめ」に関してアレコレ書いてみました。
今回挙げた取得パターン以外にもファイルを取得する方法はあるかもしれませんが、とりあえず自分が知っている範囲で挙げてみました。
この記事が参考になれば幸いです。