java 如何在Grive中确定文件夹中的文件数量或按日期升序列出它们

sdnqo3pr  于 2023-06-28  发布在  Java
关注(0)|答案(1)|浏览(124)

我正在使用Gdrive Java API,我必须列出目录的代码是:

FileList result = driveService.files().list() 
            .setPageSize(100)
            .setFields("nextPageToken, files(id, name, parents)")
            .execute();

但是,这假定文件夹中的文件不超过100个。我怎么能把它们都列出来呢?如何在文件夹中搜索文件?我怎么能只列出最近的前100个?

nom7f22z

nom7f22z1#

如果你有超过100个文件,那么你可以将setPageSize(100)更新为setPageSize(1000),这是列表请求中返回的最大项目数(在文档中没有找到此信息,但我测试了一下,确认它允许最多1000个)。
如果你有超过1000个文件,并且想要列出所有的文件,那么你需要在list().execute()上迭代,并在请求中包含nextPageToken,直到nextPageToken返回null
我猜在你的问题How can I search a folder for a file?你是指如何在一个文件夹中搜索一个文件,如果不是这样,请澄清.如果您试图搜索文件夹中的文件,则可以在请求中添加查询。(Here是一个关于如何使用查询进行请求的示例)

String searchQuery = "name contains 'nameOfFile' and mimeType != 'application/vnd.google-apps.folder' and 'folderID' in parents"

对于最后一个问题,您可以在请求中添加orderBy参数,并使用有效的密钥,如createdTimemodifiedTime
orderBy逗号分隔的排序键列表。有效键为'createdTime'、' folder'、'modifiedByMeTime'、' modifiedTime'、'name'、'name_natural'、'quotaBytesUsed'、' recency'、'sharedWithMeTime'、' starred'和'viewedByMeTime'。每个键默认按升序排序,但可以使用'desc'修饰符进行反转。示例用法:?orderBy=folder,modifiedTime desc,name.

参考资料:

  • 查询字符串示例
  • 查询参数

相关问题