Dosya ve klasör arama

Koleksiyonlar ile düzeninizi koruyun İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.

Dosya ve klasör aramak için files.list yöntemini kullanın.

Geçerli kullanıcının Drive'ım bölümündeki tüm dosya ve klasörleri arayın

Tüm dosya ve klasörleri döndürmek için files.list parametresini herhangi bir parametre olmadan kullanın.

Geçerli kullanıcının Drive'ım bölümünde belirli dosyaları veya klasörleri arama

Belirli bir dosya veya klasör grubunu aramak için, döndürülecek dosyaları filtrelemek üzere files.list ile q sorgu dizesini kullanın.

Bu örnekte bir sorgu dizesinin biçimi gösterilmektedir:

query_term operator values

Burada:

  • query_term, aranacak sorgu terimi veya alanıdır. Ortak Drive'ları filtrelemek için kullanılabilecek sorgu terimlerini görüntülemek isterseniz Arama sorgusu terimleri bölümüne bakın.
  • operator, sorgu teriminin koşulunu belirtir. Her sorgu teriminde hangi operatörleri kullanabileceğinizi öğrenmek için Sorgu operatörleri bölümüne bakın.
  • değerler, arama sonuçlarınızı filtrelemek için kullanmak istediğiniz belirli değerlerdir.

Örneğin, aşağıdaki sorgu dizesi aramayı yalnızca klasörleri döndürecek şekilde filtreler:

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

Aşağıdaki örnekte, arama sonuçlarını JPEG resim dosyalarının dosya adları ve kimliklerine göre filtrelemek için bir istemci kitaplığının nasıl kullanılacağı gösterilmektedir. Bu örnekte, sonuçları image/jpeg türündeki dosyalarla daraltmak için mimeType sorgu terimi kullanılmaktadır. Bu örnekte, aramayı drive alanını daha da daraltmak için spaces olarak drive olarak ayarlanmıştır. nextPageToken, null değerini döndürdüğünde başka sonuç yok.

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.html
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;
    }
}

Aramayı klasörlerle kısıtlamak için sorgu dizesini kullanarak MIME türünü q: mimeType = 'application/vnd.google-apps.folder' olarak ayarlayın

MIME türleri hakkında daha fazla bilgi edinmek için Google Workspace ve Drive MIME Türleri başlıklı makaleye bakın.

Sorgu dizesi örnekleri

Bu tabloda bazı temel sorgu dizeleri gösterilmektedir. Gerçek kod, aramanızda kullandığınız istemci kitaplığına bağlı olarak değişir.

Sorgulamak istediğiniz öğe Örnek
"merhaba" adlı dosyalar name = 'hello'
Adı "merhaba" ve "veda" kelimelerini içeren dosyalar name contains 'hello' and name contains 'goodbye'
Adı "merhaba" kelimesini içermeyen dosyalar not name contains 'hello'
Google uygulaması olan veya MIME türüne sahip klasörler mimeType = 'application/vnd.google-apps.folder'
Klasör olmayan dosyalar mimeType != 'application/vnd.google-apps.folder'
"Önemli" metnini ve çöp kutusunu içeren dosyalar fullText contains 'important' and trashed = true
"Merhaba" kelimesini içeren dosyalar fullText contains 'hello'
"Merhaba" kelimesini içermeyen dosyalar not fullText contains 'hello'
Tam olarak "merhaba dünya" kelime öbeğini içeren dosyalar fullText contains '"hello world"'
"\" karakterini içeren bir sorgu içeren dosyalar (ör. "\authors") fullText contains '\\authors'
Bir koleksiyonda kimliği olan dosyalar, örneğin parents koleksiyonu '1234567' in parents
Koleksiyondaki bir Uygulama veri klasöründe bulunan dosyalar 'appDataFolder' in parents
"test@example.org" kullanıcısının yazma iznine sahip olduğu dosyalar 'test@example.org' in writers
"grup@example.org" grubunun üyelerinin yazma izni olan dosyalar 'group@example.org' in writers
Belirli bir tarihten sonra değiştirilen dosyalar modifiedTime > '2012-06-04T12:00:00' // default time zone is UTC
Adında "merhaba" yazan yetkili kullanıcıyla paylaşılan dosyalar sharedWithMe and name contains 'hello'
Hiç kimse veya alanla (yalnızca gizli olan veya belirli kullanıcılar veya gruplarla paylaşılan) paylaşılmamış dosyalar visibility = 'limited'
Belirli bir tarihten sonra değiştirilen resim veya video dosyaları modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/')

Özel bir dosya özelliğine sahip dosyaları arama

Özel bir dosya özelliğine sahip dosyaları aramak için anahtar ve değer içeren appProperties arama sorgusu terimini kullanın. Örneğin, 8e8aceg2af2ge72e78 değerine sahip additionalID adlı bir özel dosya özelliği aramak için:

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

Özel dosya özellikleri hakkında daha fazla bilgi edinmek için Özel dosya özellikleri ekleme bölümüne bakın.

Belirli bir etiket veya alan değeri olan dosyaları arayın

Belirli etiketleri olan dosyaları aramak için belirli bir etiket kimliğine sahip labels arama sorgusu terimini kullanın. Örneğin: 'labels/LABEL_ID' in labels

Belirli bir etiket kimliğine sahip olmayan dosyaları aramak için: Not 'labels/LABEL_ID' in labels

Dosyaları belirli alan değerlerine göre de arayabilirsiniz. Örneğin, metin değeri olan dosyaları aramak için: labels/LABEL_ID.text_field_id = 'TEXT'

Daha ayrıntılı bilgi için Belirli bir etiket veya alan değerine sahip dosyaları arama başlıklı makaleyi inceleyin.

Kitaplıkta ara

files.list çağrısı yapan aramalar varsayılan olarak user kitaplığını kullanır. BirGoogle Workspace alanda paylaşılan dosyalar gibi diğer derlemelerde arama yapmak için corpora parametresini kullanın.

Tek bir sorguda birden fazla derleme aranabilir. Ancak birleştirilmiş derleme çok büyükse eksik sonuçlar döndürülebilir. incompleteSearch sonucu true ise tüm belgeler döndürülmemiş demektir.