2016-09-23 7 views
1

Ich versuche ein Programm zu erstellen, das Bilddateien in meinem Google Drive herunterladen wird. Ich konnte dies tun, aber wenn ich versuche, eine Datei zu suchen, um eine bestimmte Datei zurückzugeben, bekam ich immer einen Fehler, wenn ich das 'Name'-Feld verwendete, das auf dieser Website basiert https://developers.google.com/drive/v3/web/search-parameters. Ich kenne das Problem nicht wirklich. Dies ist mein CodeSuche Datei zum Download in Google Drive C#

GoogleHelper gh = new GoogleHelper();//calling 
     DriveService service = GoogleHelper.AuthenticateServiceAccount(email, securityPath); 
     List<String> file = GoogleHelper.GetFiles(service, 
"mimeType='image/jpeg' and name contains 'aa'"); 
     String newFile = newPath+id; 
     gh.DownloadFile(service, file[0],newPath); 
//get File Method: 
    public static List<String> GetFiles(DriveService service, string search) 
    { 
     List<String> Files = new List<String>(); 
     try 
     { 
      //List all of the files and directories for the current user. 
      FilesResource.ListRequest list = service.Files.List(); 
      list.MaxResults = 1000; 

      if (search != null) 
      { 
       list.Q = search; 

      } 

      FileList filesFeed = list.Execute(); 

      // MessageBox.Show(filesFeed.Items.Count); 
      //// Loop through until we arrive at an empty page 
      while (filesFeed.Items != null) 
      { 
       // Adding each item to the list. 
       foreach (File item in filesFeed.Items) 
       { 
        Files.Add(item.Id); 

       } 

       // We will know we are on the last page when the next page token is 
       // null. 
       // If this is the case, break. 

       if (filesFeed.NextPageToken == null) 
       { 
        break; 
       } 

       // Prepare the next page of results 
       list.PageToken = filesFeed.NextPageToken; 

       // Execute and process the next page request 
       filesFeed = list.Execute(); 

      } 
     } 
     catch (Exception ex) 
     { 
      // In the event there is an error with the request. 
      Console.WriteLine(ex.Message); 
      MessageBox.Show(ex.Message); 
     } 
     return Files; 
    } 

Antwort

1

Wenn wir die Dokumentation Search for Files

name string contains1, =, != Name of the file. 

überprüfen Sie zeigen auch

name contains 'hello' and name contains 'goodbye' 

Nun ist die file.list Methode liefert eine Liste der Dateiressourcen es

verwendet wird. Wenn Sie file resources überprüfen Name ist kein Parameter title ist.

Also, wenn Sie

mimeType='image/jpeg' and (title contains 'a') 

Ihre Anfrage tun arbeiten.

Der Grund für die falsche Dokumentation ist, dass Sie die Google Drive v2-API verwenden und die Dokumentation für Google Drive v3 offenbar aktualisiert wurde, da Sie angenommen haben, dass der Name anstelle des Titels für eine Datei verwendet wird.

IMO sollte es zwei sein, naja, es sind nur verschiedene APIs hier.

+0

Danke für die Erklärung und Hilfe. – user3928241

Verwandte Themen