net google example c# .net google-drive-sdk google-api-dotnet-client

example - Google Drive V3 Api obtiene el nombre del archivo, C#



google drive json api (3)

¿Cómo obtengo un nombre de archivo único de una solicitud get usando la api de la unidad?

Hice una solicitud pero no hay metadatos sobre el archivo allí, solo puedo descargarlo.

var fileId = "0BwwA4oUTeiV1UVNwOHItT0xfa2M"; var request = driveService.Files.Get(fileId);

Aparentemente esto devuelve un archivo. Get en la respuesta de acuerdo con este documento

Solo quiero descargar un archivo y mostrar su nombre, no solo su ID


Prueba esto

/// /// Download a file /// Documentation: https://developers.google.com/drive/v2/reference/files/get /// /// a Valid authenticated DriveService /// File resource of the file to download /// location of where to save the file including the file name to save it as. /// public static Boolean downloadFile(DriveService _service, File _fileResource, string _saveTo) { if (!String.IsNullOrEmpty(_fileResource.DownloadUrl)) { try { var x = _service.HttpClient.GetByteArrayAsync(_fileResource.DownloadUrl ); byte[] arrBytes = x.Result; System.IO.File.WriteAllBytes(_saveTo, arrBytes); return true; } catch (Exception e) { Console.WriteLine("An error occurred: " + e.Message); return false; } } else { // The file doesn''t have any content stored on Drive. return false; } }

Código extraído de mi api de la unidad Google Drive C # tutorial. Que no he actualizado en años, así que si hay algún problema, avíseme y lo arreglaré.


Puede obtener el nombre de archivo de la propiedad Title en la clase File :

string FileName = service.Files.Get(FileId).Execute().Title;

y para descargar,

// DriveService _service: a valid Authendicated DriveService // Google.Apis.Drive.v2.Data.File _fileResource: Resource of the file to download. (from service.Files.Get(FileId).Execute();) // string _saveTo: Full file path to save the file public static void downloadFile(DriveService _service, File _fileResource, string _saveTo) { if (!String.IsNullOrEmpty(_fileResource.DownloadUrl)) { try { var x = _service.HttpClient.GetByteArrayAsync(_fileResource.DownloadUrl); byte[] arrBytes = x.Result; System.IO.File.WriteAllBytes(_saveTo, arrBytes); } catch(Exception e) { MessageBox.Show(e.Message, "Error Occured", MessageBoxButtons.OK, MessageBoxIcon.Error); Environment.Exit(0); } } }


Para Google Drive V3:

DO#:
string f = driveService.Files.Get(fileId).Execute().Name;

VB:
Dim f As String = driveService.Files.Get(fileId).Execute().Name