見出し画像

【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);

いいなと思ったら応援しよう!