Buscar archivos y carpetas

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

Usa el método files.list para buscar archivos y carpetas.

Buscar todos los archivos y carpetas en la sección Mi unidad del usuario actual

Usa files.list sin ningún parámetro para mostrar todos los archivos y carpetas.

Buscar carpetas o archivos específicos en la sección Mi unidad del usuario actual

Si deseas buscar un conjunto específico de archivos o carpetas, usa la string de consulta q con files.list para filtrar los archivos que se mostrarán.

En este ejemplo, se muestra el formato de una cadena de consulta:

query_term operator values

Aquí:

  • query_term es el campo o término de búsqueda en el que se realizará la búsqueda. A fin de ver los términos de búsqueda que se pueden usar para filtrar unidades compartidas, consulta Términos de búsqueda.
  • operator especifica la condición para el término de consulta. Para ver qué operadores puedes usar con cada término de consulta, consulta Operadores de consulta.
  • values son los valores específicos que deseas usar para filtrar tus resultados de búsqueda.

Por ejemplo, la siguiente string de consulta filtra la búsqueda para que solo muestre carpetas:

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

En el siguiente ejemplo, se muestra cómo usar una biblioteca cliente para filtrar los resultados de la búsqueda según el nombre y el ID de los archivos de imagen JPEG. En este ejemplo, se usa el término de búsqueda mimeType para limitar los resultados a archivos de tipo image/jpeg. En este ejemplo, también se establece spaces en drive para acotar aún más la búsqueda al espacio drive. Cuando nextPageToken muestra null, no hay más resultados.

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

Para restringir la búsqueda a carpetas, usa la string de consulta a fin de establecer el tipo de MIME en q: mimeType = 'application/vnd.google-apps.folder'.

Para obtener más información sobre los tipos de MIME, consulta Tipos de MIME de Drive y Google Workspace.

Ejemplos de strings de consulta

En esta tabla, se muestran algunas strings de consulta básicas. El código real varía según la biblioteca cliente que uses para la búsqueda.

Qué deseas consultar Ejemplo
Archivos con el nombre "hello" name = 'hello'
Archivos con el nombre "hello" y "goodbye" name contains 'hello' and name contains 'goodbye'
Archivos con un nombre que no contiene la palabra "hola" not name contains 'hello'
Carpetas que son apps de Google o que tienen el tipo MIME de carpeta mimeType = 'application/vnd.google-apps.folder'
Archivos que no son carpetas mimeType != 'application/vnd.google-apps.folder'
Archivos que contengan el texto "importante" y en la papelera fullText contains 'important' and trashed = true
Archivos que contengan la palabra "hello" fullText contains 'hello'
Archivos que no tienen la palabra "hola" not fullText contains 'hello'
Archivos que contengan la frase exacta "hello world" fullText contains '"hello world"'
Archivos con una consulta que contiene el carácter "\" (p.ej., “\authors”) fullText contains '\\authors'
Archivos con ID dentro de una colección, p.ej., colección parents '1234567' in parents
Archivos en una carpeta de datos de aplicación de una colección 'appDataFolder' in parents
Archivos para los que el usuario "test@example.org" tiene permiso de escritura 'test@example.org' in writers
Archivos para los que los miembros del grupo "group@example.org" tienen permiso de escritura 'group@example.org' in writers
Archivos modificados después de una fecha determinada modifiedTime > '2012-06-04T12:00:00' // default time zone is UTC
Archivos compartidos con el usuario autorizado y el nombre "hello" sharedWithMe and name contains 'hello'
Archivos que no se compartieron con nadie o dominios (solo privados o compartidos con usuarios o grupos específicos) visibility = 'limited'
Archivos de imagen o video modificados después de una fecha específica modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/')

Cómo buscar archivos con una propiedad de archivo personalizada

Para buscar archivos con una propiedad de archivo personalizada, usa el término de búsqueda appProperties con una clave y un valor. Por ejemplo, para buscar una propiedad del archivo personalizado llamada additionalID con un valor de 8e8aceg2af2ge72e78, haz lo siguiente:

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

Para obtener más información sobre las propiedades de los archivos personalizados, consulta Agrega propiedades del archivo personalizado.

Cómo buscar archivos con una etiqueta o un valor de campo específicos

Para buscar archivos con etiquetas específicas, usa el término de búsqueda labels con un ID de etiqueta específico. Por ejemplo: 'labels/LABEL_ID' in labels.

Para buscar archivos sin un ID de etiqueta específico: Not 'labels/LABEL_ID' in labels

También puedes buscar archivos según valores de campo específicos. Por ejemplo, para buscar archivos con un valor de texto: labels/LABEL_ID.text_field_id = 'TEXT'

Para obtener más información, consulta Busca archivos con una etiqueta o un valor de campo específicos.

Buscar en la empresa

Las búsquedas que llaman a files.list usan el corpus user de forma predeterminada. Para buscar otros elementos, como archivos compartidos con un dominioGoogle Workspace , usa el parámetro corpora.

Es posible buscar múltiples elementos en una sola consulta, aunque se pueden mostrar resultados incompletos si el corpus combinado es demasiado grande. Si el resultado de incompleteSearch es true, no se mostraron todos los documentos.