【GAS】 でGoogleドライブを操る! Googleドライブ内の「ファイル」を探すの巻
Googleドライブ全体から特定の条件のファイルを探す方法(関数)をご紹介します。
使うのは”DriveApp"クラスです。
このクラスは主に、Googleドライブの全体やルートディレクトリなどを操作したい時に使います。
ファイルのIDからファイルを取得する: DriveApp.getFlieById(ファイルのID)
それぞれのファイルが持っているIDから特定のファイルを探し、取得することができます。
引数はファイルのID(文字列)。
戻り値は、Fileクラスのオブジェクトです。
なお、それぞれ全てのファイルに割り当てられているIDの取得の方法や、どういうものかの説明は割愛させていただきます。
let fileId = "hkecogwe0hgcoa-thisIsDetarameID";
// ファイルのIDからファイルオブジェクトを取得
let file = DriveApp.getFileById(fileId);
ファイル名からファイルを取得する: DriveApp.getFilesByName(ファイル名)
ファイル名からファイルを探し、取得します。
引数はファイル名(文字列)。
ファイルIDとは違い、同じ名前のファイルがあることもあることから、戻り値は複数のファイルをまとめたFileIteratorクラスのオブジェクトです。
FileIteratorについてはこちらで説明しています。
let fileName = "ファイルA";
// ファイル名をもつ全てのファイルをFileIteratorとして取得
let fileIterator = DriveApp.getFilesByName(fileName);
データ型(MimeType)からファイルを取得する: DriveApp.getFilesByType(データ型)
データ型とは、ファイルのデータがどのようなものかを示すものです。
いわゆる拡張子の様なもので、データが画像データなのか、それともテキストベースのデータなのかを示す情報を持っています。
もう少し踏み込むと、データがPNGやPDFなのかそれともCSVなのかという事です。
また、Google Apps Scriptではデータの種類をMimeTypeクラスが定義するプロパティで指定します。例えば…
PDF→MimeType.PDF
PNG→MimeType.PNG
CSV→MimeType .CSV など…
詳しくはこちらにてご確認ください。
ということで、Googleドライブにある特定のデータ型のファイルを取得したい時に役立ちます。
引数はデータ型のMimeTypeクラスのプロパティ。
戻り値は、複数のファイルをまとめたFileIteratorクラスのオブジェクトです。
FileIteratorについてはこちらで説明しています。
// 全てのPDFファイルをFileIteratorとして取得
let fileIterator = DriveApp.getFilesByType(MimeType.PDF);
全てのファイルを取得する: DriveApp.getFiles()
Googleドライブにある全てのファイルを取得できます。
引数はなし。
戻り値は、全てのファイルをまとめたFileIteratorクラスのオブジェクトです。
FileIteratorについてはこちらで説明しています。
let allFilesIterator = DriveApp.getFiles();
ゴミ箱に入っている全てのファイルを取得: DriveApp.getTrashedFiles()
Googleドライブのゴミ箱に入っている全てのファイルを取得します。
引数はなし。
戻り値は、ゴミ箱に入ってる全てのファイルをまとめたFileIteratorクラスのオブジェクトです。
FileIteratorについてはこちらで説明しています。
let allTrashedFilesIterator = DriveApp.getTrashedFiles();
検索条件に合うファイルを取得: DriveApp.searchFiles(検索条件)
検索条件をルールに従った文字列で指定し、それに該当したファイルを取得できます。
検索条件の指定の仕方のルールの詳細は以下のページになります。
引数は、検索条件(文字列)。
戻り値は、検索条件に該当した全てのファイルをまとめたFileIteratorクラスのオブジェクトです。
FileIteratorについてはこちらで説明しています。
// 2024年1月1日以降に更新された、PDFファイルを取得
let searchQueryString = 'mimeType = "application/pdf" and modifiedDate > "2024-01-01"'
let searchedFileIterator = DriveApp.searchFiles(searchQueryString);