ค้นหาไฟล์และโฟลเดอร์

ใช้ files.list เพื่อค้นหาไฟล์และโฟลเดอร์

ค้นหาไฟล์และโฟลเดอร์ทั้งหมดในไดรฟ์ของฉันของผู้ใช้ปัจจุบัน

ใช้ files.list โดยไม่มีพารามิเตอร์ใดๆ เพื่อแสดงไฟล์และโฟลเดอร์ทั้งหมด

ค้นหาไฟล์หรือโฟลเดอร์ที่ต้องการใน "ไดรฟ์ของฉัน" ของผู้ใช้ปัจจุบัน

หากต้องการค้นหาชุดไฟล์หรือโฟลเดอร์ที่เจาะจง ให้ใช้สตริงการค้นหา q กับ files.list เพื่อกรองไฟล์ที่จะส่งคืน

ตัวอย่างนี้แสดงรูปแบบของสตริงข้อความค้นหา

query_term operator values

สถานที่:

  • query_term คือข้อความค้นหาหรือช่องที่จะใช้ค้นหา หากต้องการดูคําค้นหาที่ใช้กรองไดรฟ์ที่แชร์ได้ โปรดดูคําค้นหา
  • โอเปอเรเตอร์ ระบุเงื่อนไขสําหรับข้อความค้นหา หากต้องการดูโอเปอเรเตอร์ที่คุณสามารถใช้กับข้อความค้นหาแต่ละรายการ โปรดดูที่โอเปอเรเตอร์การค้นหา
  • ค่า คือค่าเฉพาะที่คุณต้องการใช้เพื่อกรองผลการค้นหา

ตัวอย่างเช่น สตริงข้อความค้นหาต่อไปนี้จะกรองการค้นหาเฉพาะโฟลเดอร์ที่แสดงผล

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

ตัวอย่างต่อไปนี้จะแสดงวิธีใช้ไลบรารีของไคลเอ็นต์เพื่อกรองผลการค้นหาให้เป็นชื่อไฟล์และรหัสของไฟล์ภาพ JPEG ตัวอย่างนี้ใช้คําค้นหา mimeType เพื่อจํากัดผลการค้นหาให้แคบลงสําหรับไฟล์ประเภท image/jpeg ตัวอย่างนี้ยังตั้งค่า spaces เป็น drive เพื่อจํากัดการค้นหาให้แคบลงเป็นพื้นที่ทํางาน drive ด้วย เมื่อ nextPageToken กลับมา null จะไม่มีผลลัพธ์เพิ่มเติม

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/snippets/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/snippets/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/snippets/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;
    }
}

หากต้องการจํากัดการค้นหาในโฟลเดอร์ ให้ใช้สตริงการค้นหาเพื่อกําหนดประเภท MIME เป็น q: mimeType = 'application/vnd.google-apps.folder'

โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับประเภท MIME ในประเภท MIME ของ Google Workspace และไดรฟ์

ตัวอย่างสตริงข้อความค้นหา

ตารางนี้แสดงสตริงการค้นหาพื้นฐาน โค้ดจริงจะแตกต่างกันตามไลบรารีของไคลเอ็นต์ที่คุณใช้ในการค้นหา

สิ่งที่คุณต้องการค้นหา ตัวอย่าง
ไฟล์ที่มีชื่อ "hello" name = 'hello'
ไฟล์ที่มีชื่อที่ประกอบด้วยคําว่า "hello" และ "goodbye" name contains 'hello' and name contains 'goodbye'
ไฟล์ที่มีชื่อไม่มีคําว่า "hello" not name contains 'hello'
โฟลเดอร์ที่เป็นแอป Google หรือมีประเภท MIME ของโฟลเดอร์ mimeType = 'application/vnd.google-apps.folder'
ไฟล์ที่ไม่ใช่โฟลเดอร์ mimeType != 'application/vnd.google-apps.folder'
ไฟล์ที่มีข้อความ "สําคัญ" และในถังขยะ 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'
ไฟล์ที่มีรหัสภายในคอลเล็กชัน เช่น parents คอลเล็กชัน '1234567' in parents
ไฟล์ในโฟลเดอร์ข้อมูลแอปพลิเคชันในคอลเล็กชัน 'appDataFolder' in parents
ไฟล์ที่ผู้ใช้ "test@example.org" มีสิทธิ์ในการเขียน 'test@example.org' in writers
ไฟล์ที่สมาชิกของกลุ่ม "group@example.org" มีสิทธิ์เขียน 'group@example.org' in writers
ไฟล์ที่แก้ไขหลังจากวันที่ที่ระบุ modifiedTime > '2012-06-04T12:00:00' // default time zone is UTC
ไฟล์ที่แชร์กับผู้ใช้ที่ได้รับอนุญาตพร้อมคําว่า "hello" ในชื่อ sharedWithMe and name contains 'hello'
ไฟล์ที่ไม่ได้แชร์กับใครหรือโดเมน (เฉพาะส่วนตัวหรือแชร์กับผู้ใช้หรือกลุ่มที่ระบุ) visibility = 'limited'
ไฟล์รูปภาพหรือวิดีโอที่มีการแก้ไขหลังจากวันที่กําหนด modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/')

ค้นหาไฟล์ด้วยพร็อพเพอร์ตี้ไฟล์ที่กําหนดเอง

หากต้องการค้นหาไฟล์ด้วยพร็อพเพอร์ตี้ไฟล์ที่กําหนดเอง ให้ใช้ข้อความค้นหา appProperties ที่มีคีย์และค่า ตัวอย่างเช่น หากต้องการค้นหาพร็อพเพอร์ตี้ไฟล์แบบกําหนดเองชื่อ additionalID ที่มีค่าเป็น 8e8aceg2af2ge72e78 ให้ทําดังนี้

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับคุณสมบัติของไฟล์ที่กําหนดเองได้ที่เพิ่มคุณสมบัติของไฟล์ที่กําหนดเอง

ค้นหาไฟล์ที่มีป้ายกํากับหรือค่าในช่องที่เจาะจง

หากต้องการค้นหาไฟล์ที่มีป้ายกํากับเฉพาะ ให้ใช้คําค้นหา labels ที่มีรหัสป้ายกํากับเฉพาะ เช่น 'labels/LABEL_ID' in labels

หากต้องการค้นหาไฟล์โดยไม่มีรหัสป้ายกํากับที่เฉพาะเจาะจง: Not 'labels/LABEL_ID' in labels

คุณยังสามารถค้นหาไฟล์ตามค่าช่องที่เจาะจงได้อีกด้วย เช่น หากต้องการค้นหาไฟล์ที่มีค่าข้อความ ให้ทําดังนี้ labels/LABEL_ID.text_field_id = 'TEXT'

หากต้องการรายละเอียดเพิ่มเติม โปรดดูที่ค้นหาไฟล์ที่มีป้ายกํากับหรือค่าในช่องที่เจาะจง

ค้นหาคลังข้อมูล

การค้นหา files.list จะใช้ usercorpus โดยค่าเริ่มต้น หากต้องการค้นหาคลังข้อมูลอื่นๆ เช่น ไฟล์ที่แชร์ไปยังโดเมนGoogle Workspace ให้ใช้พารามิเตอร์ corpora

อาจมีการค้นหาคลังข้อมูลหลายรายการในคําค้นหาเดียว แต่อาจแสดงผลลัพธ์ที่ไม่สมบูรณ์หากคลังข้อมูลรวมใหญ่เกินไป หากผลลัพธ์ incompleteSearch คือ true แสดงว่าไม่มีการส่งคืนเอกสารทั้งหมด