Lists the user's files. Try it now or see an example.
This method accepts the q
parameter, which is a search query combining one or more search terms. For more information, see the Search for files guide.
Request
HTTP request
GET https://www.googleapis.com/drive/v2/files
Parameters
Parameter name | Value | Description |
---|---|---|
Optional query parameters | ||
corpora |
string |
Groupings of files to which the query applies. Supported groupings are: 'user' (files created by, opened by, or shared directly with the user), 'drive' (files in the specified shared drive as indicated by the 'driveId'), 'domain' (files shared to the user's domain), and 'allDrives' (A combination of 'user' and 'drive' for all drives where the user is a member). When able, use 'user' or 'drive', instead of 'allDrives', for efficiency. |
corpus |
string |
The body of items (files/documents) to which the query applies. Deprecated: use 'corpora' instead.
Acceptable values are:
|
driveId |
string |
ID of the shared drive to search. |
includeItemsFromAllDrives |
boolean |
Whether both My Drive and shared drive items should be included in results.
(Default: false )
|
includeLabels |
string |
A comma-separated list of IDs of labels to include in the labelInfo part of the response.
|
includePermissionsForView |
string |
Specifies which additional view's permissions to include in the response. Only 'published' is supported. |
includeTeamDriveItems |
boolean |
Deprecated use includeItemsFromAllDrives instead.
(Default: false )
|
maxResults |
integer |
The maximum number of files to return per page. Partial or empty result pages are possible even before the end of the files list has been reached. |
orderBy |
string |
A comma-separated list of sort keys. Valid keys are 'createdDate', 'folder', 'lastViewedByMeDate', 'modifiedByMeDate', 'modifiedDate', 'quotaBytesUsed', 'recency', 'sharedWithMeDate', 'starred', 'title', and 'title_natural'. Each key sorts ascending by default, but may be reversed with the 'desc' modifier. Example usage: ?orderBy=folder,modifiedDate desc,title. Please note that there is a current limitation for users with approximately one million files in which the requested sort order is ignored. |
pageToken |
string |
Page token for files. |
projection |
string |
This parameter is deprecated and has no function.
Acceptable values are:
|
q |
string |
Query string for searching files. See the "Search for files" guide for the supported syntax. |
spaces |
string |
A comma-separated list of spaces to query. Supported values are 'drive' and 'appDataFolder'. |
supportsAllDrives |
boolean |
Whether the requesting application supports both My Drives and shared drives.
(Default: false )
|
supportsTeamDrives |
boolean |
Deprecated use supportsAllDrives instead.
(Default: false )
|
teamDriveId |
string |
Deprecated use driveId instead. |
Authorization
This request allows authorization with at least one of the following scopes:
Scope |
---|
https://www.googleapis.com/auth/drive |
https://www.googleapis.com/auth/drive.file |
https://www.googleapis.com/auth/drive.readonly |
https://www.googleapis.com/auth/drive.metadata.readonly |
https://www.googleapis.com/auth/drive.appdata |
https://www.googleapis.com/auth/drive.apps.readonly |
https://www.googleapis.com/auth/drive.metadata |
https://www.googleapis.com/auth/drive.photos.readonly |
Some scopes are restricted and require a security assessment for your app to use them. For more information, see the authentication and authorization page.
Request body
Do not supply a request body with this method.
Response
If successful, this method returns a response body with the following structure:
{ "kind": "drive#fileList", "etag": etag, "selfLink": string, "nextPageToken": string, "nextLink": string, "incompleteSearch": boolean, "items": [ files Resource ] }
Property name | Value | Description | Notes |
---|---|---|---|
kind |
string |
This is always drive#fileList. | |
etag |
etag |
The ETag of the list. | |
selfLink |
string |
A link back to this list. | |
nextPageToken |
string |
The page token for the next page of files. This will be absent if the end of the files list has been reached. If the token is rejected for any reason, it should be discarded, and pagination should be restarted from the first page of results. | |
nextLink |
string |
A link to the next page of files. | |
items[] |
list |
The list of files. If nextPageToken is populated, then this list may be incomplete and an additional page of results should be fetched. | |
incompleteSearch |
boolean |
Whether the search process was incomplete. If true, then some search results may be missing, since all documents were not searched. This may occur when searching multiple drives with the "allDrives" corpora, but all corpora could not be searched. When this happens, it is suggested that clients narrow their query by choosing a different corpus such as "default" or "drive". |
Examples
Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).
Java
Uses the Java client library.
import com.google.api.services.drive.Drive; import com.google.api.services.drive.Drive.Files; import com.google.api.services.drive.model.File; import com.google.api.services.drive.model.FileList; import java.io.IOException; import java.util.ArrayList; import java.util.List; // ... public class MyClass { // ... /** * Retrieve a list of File resources. * * @param service Drive API service instance. * @return List of File resources. */ private static List<File> retrieveAllFiles(Drive service) throws IOException { List<File> result = new ArrayList<File>(); Files.List request = service.files().list(); do { try { FileList files = request.execute(); result.addAll(files.getItems()); request.setPageToken(files.getNextPageToken()); } catch (IOException e) { System.out.println("An error occurred: " + e); request.setPageToken(null); } } while (request.getPageToken() != null && request.getPageToken().length() > 0); return result; } // ... }
.NET
Uses the .NET client library.
using Google.Apis.Drive.v2; using Google.Apis.Drive.v2.Data; using System.Collections.Generic; // ... public class MyClass { // ... /// <summary> /// Retrieve a list of File resources. /// </summary> /// <param name="service">Drive API service instance.</param> /// <returns>List of File resources.</returns> public static List<File> retrieveAllFiles(DriveService service) { List<File> result = new List<File>(); FilesResource.ListRequest request = service.Files.List(); do { try { FileList files = request.Execute(); result.AddRange(files.Items); request.PageToken = files.NextPageToken; } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); request.PageToken = null; } } while (!String.IsNullOrEmpty(request.PageToken)); return result; } // ... }
PHP
Uses the PHP client library.
/** * Retrieve a list of File resources. * * @param Google_Service_Drive $service Drive API service instance. * @return Array List of Google_Service_Drive_DriveFile resources. */ function retrieveAllFiles($service) { $result = array(); $pageToken = NULL; do { try { $parameters = array(); if ($pageToken) { $parameters['pageToken'] = $pageToken; } $files = $service->files->listFiles($parameters); $result = array_merge($result, $files->getItems()); $pageToken = $files->getNextPageToken(); } catch (Exception $e) { print "An error occurred: " . $e->getMessage(); $pageToken = NULL; } } while ($pageToken); return $result; }
Python
Uses the Python client library.
from apiclient import errors # ... def retrieve_all_files(service): """Retrieve a list of File resources. Args: service: Drive API service instance. Returns: List of File resources. """ result = [] page_token = None while True: try: param = {} if page_token: param['pageToken'] = page_token files = service.files().list(**param).execute() result.extend(files['items']) page_token = files.get('nextPageToken') if not page_token: break except errors.HttpError, error: print 'An error occurred: %s' % error break return result
JavaScript
Uses the JavaScript client library.
/** * Retrieve a list of File resources. * * @param {Function} callback Function to call when the request is complete. */ function retrieveAllFiles(callback) { var retrievePageOfFiles = function(request, result) { request.execute(function(resp) { result = result.concat(resp.items); var nextPageToken = resp.nextPageToken; if (nextPageToken) { request = gapi.client.drive.files.list({ 'pageToken': nextPageToken }); retrievePageOfFiles(request, result); } else { callback(result); } }); } var initialRequest = gapi.client.drive.files.list(); retrievePageOfFiles(initialRequest, []); }
Go
Uses the Go client library.
import ( "google.golang.org/drive/v2" "fmt" ) // AllFiles fetches and displays all files func AllFiles(d *drive.Service) ([]*drive.File, error) { var fs []*drive.File pageToken := "" for { q := d.Files.List() // If we have a pageToken set, apply it to the query if pageToken != "" { q = q.PageToken(pageToken) } r, err := q.Do() if err != nil { fmt.Printf("An error occurred: %v\n", err) return fs, err } fs = append(fs, r.Items...) pageToken = r.NextPageToken if pageToken == "" { break } } return fs, nil }
Objective-C
Uses the Objective-C client library.
#import "GTLDrive.h" // ... + (void)retrieveAllFilesWithService:(GTLServiceDrive *)service completionBlock:(void (^)(NSArray *, NSError *))completionBlock { // The service can be set to automatically fetch all pages of the result. More information // can be found on <a href="https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Result_Pages">https://code.google.com/p/google-api-objectivec-client/wiki/Introduction#Result_Pages</a>. service.shouldFetchNextPages = YES; GTLQueryDrive *query = [GTLQueryDrive queryForFilesList]; // queryTicket can be used to track the status of the request. GTLServiceTicket *queryTicket = [service executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLDriveFileList *files, NSError *error) { if (error == nil) { completionBlock(files.items, nil); } else { NSLog(@"An error occurred: %@", error); completionBlock(nil, error); } }]; } // ...
Try it!
Use the APIs Explorer below to call this method on live data and see the response.