Google Drive API - 使用 .NET 列出文件夹内的文件

Jim*_*mXC 3 google-drive-api

我有一个 vb.net 应用程序可以访问 Drive。除了列出文件夹内的文件外,我一切正常。我需要从 UI 传递文件夹 ID 并显示其中的文件。

我已经阅读了其他答案,例如(通过 Drive SDK 上的文件夹获取文件列表),其中声明使用附加到 GET URL 的“q”参数,但我没有构建 GET URL。在下面运行 ListRequest 时,我看不到如何传递 Q 参数:

这会从 ROOT 返回一个文件列表,但是如何将 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
Run Code Online (Sandbox Code Playgroud)

我需要传递一个像“父母中的 0B_p57qQpdddyl8nR0NBT3hXQUdIRFE”这样的 ID。文档中的 PHP 示例显示在 service.files.list() 方法中添加参数,但 .NET 版本中没有重载,所以我不知道如何添加过滤器....

我可以跑:

    Dim request As ChildrenResource.ListRequest = service.Children.List(folderid)
Run Code Online (Sandbox Code Playgroud)

传入 folderID 然后:

    Dim files As ChildList = request.Fetch()
Run Code Online (Sandbox Code Playgroud)

但这不会返回像第一个函数那样的文件列表,而只是返回子文件的 ID,这意味着我必须为每个 blah blah 做一个单独的文件请求。

任何人都可以帮忙吗?谢谢。

Cla*_*ino 6

ListRequest对象具有Q您可以设置的属性:

Dim request As FilesResource.ListRequest = service.Files.List()
request.Q = "'0B_p57qQpdddyl8nR0NBT3hXQUdIRFE' in parents"
Run Code Online (Sandbox Code Playgroud)