Google Drive API では、ファイルとフォルダを検索する方法がいくつかサポートされています。
files.list
メソッドを使用して、ドライブ ユーザーのファイルとフォルダの一部またはすべてを返すことができます。files.list
メソッドを使用して、一部のリソース メソッド(files.get
や files.update
など)に必要な fileId
を取得することもできます。
現在のユーザーのマイドライブ内のすべてのファイルとフォルダを検索する
パラメータなしで files.list
メソッドを使用すると、すべてのファイルとフォルダが返されます。
GET https://www.googleapis.com/drive/v3/files
現在のユーザーのマイドライブで特定のファイルまたはフォルダを検索する
特定のファイルまたはフォルダのセットを検索するには、クエリ文字列 q
フィールドと files.list
メソッドを使用して、1 つ以上の検索語句を組み合わせて返されるファイルをフィルタします。
クエリ文字列には、次の 3 つの部分があります。
query_term operator values
ここで
query_term
は、検索するクエリ語句またはフィールドです。operator
は、クエリ語句の条件を指定します。values
は、検索結果のフィルタに使用する特定の値です。
ファイルとフォルダのフィルタに使用できるクエリキーワードと演算子については、検索クエリのキーワードと演算子をご覧ください。
たとえば、次のクエリ文字列は、MIME タイプを設定してフォルダのみを返すように検索をフィルタします。
q: mimeType = 'application/vnd.google-apps.folder'
MIME タイプの詳細については、Google Workspace と Google ドライブでサポートされている MIME タイプをご覧ください。
クエリ文字列の例
次の表に、基本的なクエリ文字列の例を示します。実際のコードは、検索に使用するクライアント ライブラリによって異なります。
また、クエリが正しく機能するように、ファイル名の特殊文字をエスケープする必要があります。たとえば、ファイル名にアポストロフィ('
)とバックスラッシュ("\"
)の両方が含まれている場合は、バックスラッシュを使用してエスケープします(name
contains 'quinn\'s paper\\essay'
)。
クエリの対象 | 例 |
---|---|
「hello」という名前のファイル | name = 'hello' |
ファイル名に「hello」と「goodbye」という単語が含まれているファイル | name contains 'hello' and name contains 'goodbye' |
ファイル名に「hello」という単語が含まれていないファイル | not name contains 'hello' |
「重要」というテキストを含むファイルで、ゴミ箱に入っている | fullText contains 'important' and trashed = true |
「hello」という単語を含むファイル | fullText contains 'hello' |
「hello」という単語が含まれていないファイル | not fullText contains 'hello' |
「hello world」というフレーズが完全に一致するファイル | fullText contains '"hello world"' |
「&」文字を含むクエリを含むファイル(「\authors」など) | fullText contains '\\authors' |
フォルダであるファイル | mimeType = 'application/vnd.google-apps.folder' |
フォルダ以外のファイル | mimeType != 'application/vnd.google-apps.folder' |
指定した日付以降に変更されたファイル(デフォルトのタイムゾーンは UTC) | modifiedTime > '2012-06-04T12:00:00' |
特定の日付以降に変更された画像ファイルまたは動画ファイル | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
スター付きのファイル | starred = true |
コレクション内のファイル(parents コレクションのフォルダ ID など) |
'1234567' in parents |
コレクションのアプリケーション データ フォルダ内のファイル | 'appDataFolder' in parents |
ユーザー「test@example.org」が所有するファイル | 'test@example.org' in owners |
ユーザー「test@example.org」が書き込み権限を持つファイル | 'test@example.org' in writers |
グループ「group@example.org」のメンバーが書き込み権限を持つファイル | 'group@example.org' in writers |
承認済みユーザーと共有され、名前に「hello」が含まれているファイル | sharedWithMe and name contains 'hello' |
すべてのアプリに表示されるカスタム ファイル プロパティを持つファイル | properties has { key='mass' and value='1.3kg' } |
リクエスト元のアプリに限定公開されているカスタム ファイル プロパティを含むファイル | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
誰ともドメインとも共有されていないファイル(非公開のみ、または特定のユーザーまたはグループと共有) | visibility = 'limited' |
クライアント ライブラリを使用して検索結果をフィルタする
次のコードサンプルは、クライアント ライブラリを使用して検索結果を JPEG ファイルのファイル名と ID にフィルタする方法を示しています。このサンプルでは、mimeType
クエリ語句を使用して、結果を image/jpeg
タイプのファイルに絞り込んでいます。また、spaces
を drive
に設定して、検索を ドライブ スペースにさらに絞り込みます。nextPageToken
が null
を返すと、それ以上結果はありません。
Java
Python
Node.js
PHP
カスタム ファイル プロパティを持つファイルを検索する
カスタム ファイル プロパティを持つファイルを検索するには、キーと値を指定して properties
または appProperties
検索クエリ用語を使用します。たとえば、リクエスト元のアプリに固有のカスタム ファイル プロパティ(additionalID
という名前で値が 8e8aceg2af2ge72e78
のもの)を検索するには、次のようにします。
appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
詳細については、カスタム ファイル プロパティを追加するをご覧ください。
特定のラベルまたはフィールド値を含むファイルを検索する
特定のラベルを持つファイルを検索するには、特定のラベル ID を指定して labels
検索クエリ語句を使用します。例: 'labels/LABEL_ID' in
labels
。成功した場合、レスポンスの本文にはラベルが適用されているすべてのファイル インスタンスが含まれます。
特定のラベル ID のないファイルを検索するには、Not
'labels/LABEL_ID' in labels
を使用します。
特定のフィールド値に基づいてファイルを検索することもできます。たとえば、テキスト値 labels/LABEL_ID.text_field_id ='TEXT'
のファイルを検索するには、次のコマンドを使用します。
詳細については、特定のラベルまたはフィールド値を持つファイルを検索するをご覧ください。
コーパスを検索する
files.list
を呼び出す検索では、デフォルトで user
の corpora
が使用されます。domain
で共有されているファイルなど、他のコーパスを検索するには、corpora
パラメータを設定します。
1 つのクエリで複数のコーパスを検索できますが、結合されたコーパスが大きすぎると、不完全な結果が返されることがあります。レスポンス本文で incompleteSearch
が true
の場合、すべてのドキュメントが返されませんでした。この場合は、user
や drive
など、別のコーパスを選択してクエリを絞り込む必要があります。
関連トピック
- 共有ドライブを検索する
- 検索クエリのキーワードと演算子
- Google Workspace と Google ドライブでサポートされている MIME タイプ
- ロールと権限
- 特定のラベルまたはフィールド値を含むファイルを検索する