Menelusuri file dan folder

Stay organized with collections Save and categorize content based on your preferences.

Gunakan metode files.list untuk menelusuri file dan folder.

Telusuri semua file dan folder di Drive Saya pengguna saat ini

Gunakan files.list tanpa parameter apa pun untuk menampilkan semua file dan folder.

Menelusuri file atau folder tertentu di Drive Saya pengguna saat ini

Untuk menelusuri kumpulan file atau folder tertentu, gunakan string kueri q dengan files.list untuk memfilter file yang ditampilkan.

Contoh ini menunjukkan format string kueri:

query_term operator values

Dalam hal ini:

  • query_term adalah istilah atau kolom kueri yang akan ditelusuri. Untuk melihat istilah kueri yang dapat digunakan untuk memfilter drive bersama, lihat Istilah kueri penelusuran.
  • operator menentukan kondisi untuk istilah kueri. Untuk melihat operator yang dapat digunakan dengan setiap istilah kueri, lihat Operator kueri.
  • values adalah nilai tertentu yang ingin Anda gunakan untuk memfilter hasil penelusuran.

Misalnya, string kueri berikut memfilter penelusuran untuk hanya menampilkan folder:

q: mimeType = 'application/vnd.google-apps.folder'

Contoh berikut menunjukkan cara menggunakan library klien untuk memfilter hasil penelusuran ke nama file dan ID file gambar JPEG. Contoh ini menggunakan istilah kueri mimeType untuk mempersempit hasil ke file jenis image/jpeg. Contoh ini juga menetapkan spaces ke drive untuk lebih mempersempit penelusuran ke ruang drive. Saat nextPageToken menampilkan null, tidak ada hasil lainnya.

Java

drive/snippets/drive_v3/src/main/java/SearchFile.java
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.api.services.drive.model.File;
import com.google.api.services.drive.model.FileList;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/* Class to demonstrate use-case of search files. */
public class SearchFile {

  /**
   * Search for specific set of files.
   *
   * @return search result list.
   * @throws IOException if service account credentials file not found.
   */
  public static List<File> searchFile() throws IOException {
           /*Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
           guides on implementing OAuth2 for your application.*/
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Build a new authorized API client service.
    Drive service = new Drive.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Drive samples")
        .build();

    List<File> files = new ArrayList<File>();

    String pageToken = null;
    do {
      FileList result = service.files().list()
          .setQ("mimeType='image/jpeg'")
          .setSpaces("drive")
          .setFields("nextPageToken, items(id, title)")
          .setPageToken(pageToken)
          .execute();
      for (File file : result.getFiles()) {
        System.out.printf("Found file: %s (%s)\n",
            file.getName(), file.getId());
      }

      files.addAll(result.getFiles());

      pageToken = result.getNextPageToken();
    } while (pageToken != null);

    return files;
  }
}

Python

drive/cuplikan/drive-v3/file_snippet/search_file.py
from __future__ import print_function

import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def search_file():
    """Search file in drive location

    Load pre-authorized user credentials from the environment.
    TODO(developer) - See https://developers.google.com/identity
    for guides on implementing OAuth2 for the application.
    """
    creds, _ = google.auth.default()

    try:
        # create drive api client
        service = build('drive', 'v3', credentials=creds)
        files = []
        page_token = None
        while True:
            # pylint: disable=maybe-no-member
            response = service.files().list(q="mimeType='image/jpeg'",
                                            spaces='drive',
                                            fields='nextPageToken, '
                                                   'files(id, name)',
                                            pageToken=page_token).execute()
            for file in response.get('files', []):
                # Process change
                print(F'Found file: {file.get("name")}, {file.get("id")}')
            files.extend(response.get('files', []))
            page_token = response.get('nextPageToken', None)
            if page_token is None:
                break

    except HttpError as error:
        print(F'An error occurred: {error}')
        files = None

    return files


if __name__ == '__main__':
    search_file()

Node.js

drive/cuplikan/drive_v3/file_snippets/search_file.js
/**
 * Search file in drive location
 * @return{obj} data file
 * */
async function searchFile() {
  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });
  const service = google.drive({version: 'v3', auth});
  const files = [];
  try {
    const res = await service.files.list({
      q: 'mimeType=\'image/jpeg\'',
      fields: 'nextPageToken, files(id, name)',
      spaces: 'drive',
    });
    Array.prototype.push.apply(files, res.files);
    res.data.files.forEach(function(file) {
      console.log('Found file:', file.name, file.id);
    });
    return res.data.files;
  } catch (err) {
    // TODO(developer) - Handle error
    throw err;
  }
}

PHP

drive/cuplikan/drive_v3/src/DriveSearchFiles.php
use Google\Client;
use Google\Service\Drive;
function searchFiles()
{
    try {
        $client = new Client();
        $client->useApplicationDefaultCredentials();
        $client->addScope(Drive::DRIVE);
        $driveService = new Drive($client);
        $files = array();
        $pageToken = null;
        do {
            $response = $driveService->files->listFiles(array(
                'q' => "mimeType='image/jpeg'",
                'spaces' => 'drive',
                'pageToken' => $pageToken,
                'fields' => 'nextPageToken, files(id, name)',
            ));
            foreach ($response->files as $file) {
                printf("Found file: %s (%s)\n", $file->name, $file->id);
            }
            array_push($files, $response->files);

            $pageToken = $response->pageToken;
        } while ($pageToken != null);
        return $files;
    } catch(Exception $e) {
       echo "Error Message: ".$e;
    }
}

Untuk membatasi penelusuran ke folder, gunakan string kueri untuk menetapkan jenis MIME ke q: mimeType = 'application/vnd.google-apps.folder'

Untuk informasi selengkapnya tentang jenis MIME, lihat Jenis MIME Google Workspace dan Drive.

Contoh string kueri

Tabel ini menunjukkan beberapa string kueri dasar. Kode sebenarnya berbeda-beda, bergantung pada library klien yang Anda gunakan untuk penelusuran.

Hal yang ingin dikueri Contoh
File dengan nama "halo" name = 'hello'
File dengan nama yang berisi kata "halo" dan "selamat tinggal" name contains 'hello' and name contains 'goodbye'
File dengan nama yang tidak berisi kata "halo" not name contains 'hello'
Folder yang merupakan aplikasi Google atau memiliki jenis MIME folder mimeType = 'application/vnd.google-apps.folder'
File yang bukan folder mimeType != 'application/vnd.google-apps.folder'
File yang berisi teks "penting" dan berada di sampah fullText contains 'important' and trashed = true
File yang berisi kata "halo" fullText contains 'hello'
File yang tidak memiliki kata "halo" not fullText contains 'hello'
File yang berisi frasa persis "halo dunia" fullText contains '"hello world"'
File dengan kueri yang berisi karakter "\" (mis., "\authors") fullText contains '\\authors'
File dengan ID dalam koleksi, misalnya, koleksi parents '1234567' in parents
File dalam folder data Aplikasi dalam koleksi 'appDataFolder' in parents
File yang izin tulisnya dimiliki pengguna "test@example.org" 'test@example.org' in writers
File yang anggotanya adalah "group@example.org" yang memiliki izin tulis 'group@example.org' in writers
File yang diubah setelah tanggal tertentu modifiedTime > '2012-06-04T12:00:00' // default time zone is UTC
File yang dibagikan kepada pengguna yang diotorisasi dengan nama "halo" sharedWithMe and name contains 'hello'
File yang belum dibagikan dengan siapa pun atau domain (hanya pribadi, atau dibagikan kepada pengguna atau grup tertentu) visibility = 'limited'
File gambar atau video yang diubah setelah tanggal tertentu modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/')

Menelusuri file dengan properti file kustom

Untuk menelusuri file dengan properti file kustom, gunakan istilah kueri penelusuran appProperties dengan kunci dan nilai. Misalnya, untuk menelusuri properti file kustom bernama additionalID dengan nilai 8e8aceg2af2ge72e78:

appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }

Untuk mengetahui informasi selengkapnya tentang properti file kustom, lihat Menambahkan properti file kustom.

Menelusuri file dengan label atau nilai kolom tertentu

Untuk menelusuri file dengan label tertentu, gunakan istilah kueri penelusuran labels dengan ID label tertentu. Misalnya: 'labels/LABEL_ID' in labels.

Untuk menelusuri file tanpa ID label tertentu: Not 'labels/LABEL_ID' in labels

Anda juga dapat menelusuri file berdasarkan nilai kolom tertentu. Misalnya, untuk menelusuri file dengan nilai teks: labels/LABEL_ID.text_field_id = 'TEXT'

Untuk informasi selengkapnya, lihat Menelusuri file dengan label atau nilai kolom tertentu.

Telusuri korpora

Penelusuran yang memanggil files.list akan menggunakan korpus user secara default. Untuk menelusuri korpora lain, seperti file yang dibagikan ke domainGoogle Workspace , gunakan parameter corpora.

Beberapa korpora dapat ditelusuri dalam satu kueri, meskipun hasil yang tidak lengkap dapat ditampilkan jika korpus gabungan terlalu besar. Jika hasil incompleteSearch adalah true, tidak semua dokumen telah ditampilkan.