Google Drive API - 使用 .NET 列出文件夹内的文件
-
12-12-2019 - |
题
我有一个 vb.net 应用程序来访问云端硬盘。除了在文件夹内列出文件之外,我一切正常。我需要从 UI 传递文件夹 ID 并显示其中的文件。
我读过其他答案,例如(在 Drive SDK 上按文件夹获取文件列表)其中声明使用附加到 GET URL 的“q”参数,但我没有构建 GET URL。我看不到在运行下面的 ListRequest 时如何传递 Q 参数:
这可以从根目录返回一个文件列表,但是如何将 Q 传递到其中以从指定文件夹返回文件:
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
我需要传递一个像“0B_p57qQpdddyl8nR0NBT3hXQUdIRFE inParents”这样的ID。文档中的 PHP 示例显示在 service.files.list() 方法中添加参数,但 .NET 版本中没有重载,因此我不知道如何添加过滤器......
我可以跑:
Dim request As ChildrenResource.ListRequest = service.Children.List(folderid)
传入folderID,然后:
Dim files As ChildList = request.Fetch()
但这不会像第一个函数那样返回文件列表,而只是返回子文件的 ID,这意味着我必须为每个等等执行单独的文件请求。
有人可以帮忙吗?谢谢。
解决方案
这 ListRequest
对象有一个 Q
您可以设置的属性:
Dim request As FilesResource.ListRequest = service.Files.List()
request.Q = "'0B_p57qQpdddyl8nR0NBT3hXQUdIRFE' in parents"
不隶属于 StackOverflow