繁体   English   中英

如何列出特定文件夹内的文件夹和文件

[英]How to list folders and files inside a specific folder

我对Google Drive API有一些疑问。 我正在从这里关注代码( https://everyday-be-coding.blogspot.com/

  1. 如何更改默认文件列表长度(100)从谷歌驱动器的完整文件列表长度?
  2. 如何避免从Google Drive的垃圾箱中列出文件?
  3. 如何在Google驱动器中使用文件夹名称搜索和列出特定文件夹内的内容?

这些是我在使用Google Drive API时遇到的问题。请帮助我解决这些问题。

这是我用来列出文件的代码

 public static List<GoogleDriveFiles> GetDriveFiles()
    {
        DriveService service = GetService();

        // Define parameters of request.

        FilesResource.ListRequest FileListRequest = service.Files.List();
        FileListRequest.Q = "mimeType = 'application/vnd.google-apps.folder'";

        FileListRequest.Fields = "nextPageToken, files(id, name, size, version, trashed, createdTime)";

        // List files.
        IList<Google.Apis.Drive.v3.Data.File> files = FileListRequest.Execute().Files.Where(c => c.Trashed == false).ToList();
        List<GoogleDriveFiles> FileList = new List<GoogleDriveFiles>();

        if (files != null && files.Count > 0)
        {
            foreach (var file in files)
            {
                GoogleDriveFiles File = new GoogleDriveFiles
                {
                    Id = file.Id,
                    Name = file.Name,
                    Size = file.Size,
                    Version = file.Version,
                    CreatedTime = file.CreatedTime
                };
                FileList.Add(File);
            }
        }
        return FileList;
    }

如何更改默认文件列表长度(100)从谷歌驱动器的完整文件列表长度?

files.list的默认最大页面大小为100,但是您可以通过发送pageSize参数来增加它的大小,可以将其设置为100-1000。

之后,您将需要使用NextPageToken。 真幸运,我们在C#中有一个PageStreamer方法

var pageStreamer = new Google.Apis.Requests.PageStreamer<Google.Apis.Drive.v3.Data.File, FilesResource.ListRequest, Google.Apis.Drive.v3.Data.FileList, string>(
                                                   (req, token) => request.PageToken = token,
                                                   response => response.NextPageToken,
                                                   response => response.Files);

我在这里有一个如何使用它的教程https://www.daimto.com/list-all-files-on-google-drive/

如何避免从Google Drive的垃圾箱中列出文件?

拥有的File.List称为第q paramater另一paramater这将允许你搜索你要找的文件搜索

因此以下内容将忽略已删除的文件。

q = trashed = false

如何在Google驱动器中使用文件夹名称搜索和列出特定文件夹内的内容?

为此,您将需要找到您要查找的最东部的文件夹,方法是再次使用q参数,并且仅搜索具有该名称的文件夹将有助于您找到所需的文件夹。

mimeType != 'application/vnd.google-apps.folder' and name = 'hello'

保存后,保存该文件夹的file.id

mimeType != 'application/vnd.google-apps.folder' and name = 'hello'

然后,您可以发出另一个请求,该请求将找到父文件夹中的所有文件

'the file id here' in parents

测试您的搜索的最佳地点是在此处的文档页面上尝试我

我的教程使用C#在Google云端硬盘上搜索文件

  1. Google云端硬盘中没有文件列表限制,您可以使用nextPage参数,当它达到100个文件时,它将在另一个页面中继续。
  2. 您可以避免使用查询 trashed = false列出“已删除邮件”中的文件。
  3. 要搜索文件夹中的文件,您需要文件夹ID和'folder id' in parents的搜索查询'folder id' in parents

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM