API de Google Drive: enumera archivos dentro de la carpeta usando .NET
-
12-12-2019 - |
Pregunta
Tengo una aplicación vb.net para acceder a Drive.Tengo todo funcionando excepto enumerar archivos DENTRO de una carpeta.Necesito pasar una ID de carpeta desde la interfaz de usuario y mostrar los archivos que contiene.
He leído otras respuestas, p.(Obtener una lista de archivos por carpeta en Drive SDK) que indica que se usa un parámetro "q" agregado a una URL GET pero no estoy creando la URL GET.No veo cómo pasar el parámetro Q cuando ejecuto ListRequest a continuación:
Esto devuelve una lista de archivos desde la RAÍZ, pero cómo pasar Q para devolver archivos de una carpeta específica:
Dim result As New List(Of File)()
Dim request As FilesResource.ListRequest = service.Files.List()
Do
Try
Dim files As FileList = request.Fetch()
result.AddRange(files.Items)
request.PageToken = files.NextPageToken
Catch e As Exception
Console.WriteLine("An error occurred: " + e.Message)
request.PageToken = Nothing
End Try
Loop While Not [String].IsNullOrEmpty(request.PageToken)
Return result
Necesito pasar una identificación como "0B_p57qQpdddyl8nR0NBT3hXQUdIRFE en los padres".El ejemplo de PHP en los documentos muestra cómo agregar parámetros dentro del método service.files.list(), pero no hay sobrecargas en la versión .NET, por lo que no tengo idea de cómo agregar el filtro...
Puedo correr:
Dim request As ChildrenResource.ListRequest = service.Children.List(folderid)
Pasando el ID de carpeta y luego:
Dim files As ChildList = request.Fetch()
Pero esto no devuelve una lista de archivos como la primera función, sino solo el ID de los archivos secundarios, lo que significa que luego tendría que hacer una solicitud de archivo individual para cada bla, bla.
¿Alguien puede ayudar?Gracias.
Solución
El ListRequest
objeto tiene un Q
propiedad que puede establecer:
Dim request As FilesResource.ListRequest = service.Files.List()
request.Q = "'0B_p57qQpdddyl8nR0NBT3hXQUdIRFE' in parents"