البحث عن الملفات والمجلدات

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

استخدم طريقة 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 لتضييق نطاق البحث ليشمل مساحة YouTube 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، انظر أنواع Google Drive وMIME MIME.

أمثلة على سلسلة طلب البحث

يعرض هذا الجدول بعض سلاسل طلبات البحث الأساسية. تختلف الشفرة الفعلية بحسب مكتبة العميل التي تستخدمها في البحث.

ما تريد طلب البحث عنه مثال
ملفات باسم "مرحبًا" 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، لم يتم إرجاع جميع المستندات.