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

จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

ให้ใช้เมธอด 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'
ไฟล์ที่มีชื่อที่มีคําว่า "สวัสดี" และ "ลาก่อน" name contains 'hello' and name contains 'goodbye'
ไฟล์ที่มีชื่อไม่มีคําว่า "สวัสดี" not name contains 'hello'
โฟลเดอร์ที่เป็นแอป Google หรือมีประเภท MIME ของโฟลเดอร์ mimeType = 'application/vnd.google-apps.folder'
ไฟล์ที่ไม่ใช่โฟลเดอร์ mimeType != 'application/vnd.google-apps.folder'
ไฟล์ที่มีข้อความ "สําคัญ" และในถังขยะ fullText contains 'important' and trashed = true
ไฟล์ที่มีคําว่า "สวัสดี" fullText contains 'hello'
ไฟล์ที่ไม่มีคําว่า "สวัสดี" not fullText contains 'hello'
ไฟล์ที่มีวลี "สวัสดีโลก" 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
ไฟล์ที่แชร์กับผู้ใช้ที่ได้รับอนุญาต โดยมีคําว่า "สวัสดี" อยู่ในชื่อ 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 ใช้คลังข้อมูล user โดยค่าเริ่มต้น หากต้องการค้นหาคลังเนื้อหาอื่นๆ เช่น ไฟล์ที่แชร์ไปยังโดเมนGoogle Workspace ให้ใช้พารามิเตอร์ corpora

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