c# - 如何列出特定文件夹中的文件夹和文件
问题描述
我对 google drive api 有一些疑问。我正在关注这里的代码(https://everyday-be-coding.blogspot.com/)
- 如何将默认文件列表长度(100)从谷歌驱动器更改为完整文件列表长度?
- 如何避免从谷歌驱动器的垃圾中列出文件?
- 如何在谷歌驱动器中使用文件夹名称搜索并列出特定文件夹中的内容?
这些是我在使用 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/
如何避免从谷歌驱动器的垃圾中列出文件?
File.list 有另一个参数叫做 q 参数,它允许你搜索你正在寻找的文件
因此以下内容将忽略已删除的文件。
q = trashed = false
如何在谷歌驱动器中使用文件夹名称搜索并列出特定文件夹中的内容?
为此,您需要找到您正在寻找的文件夹,最简单的方法是再次使用 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
测试您的搜索的最佳位置是在此处的文档页面上尝试我
推荐阅读
- sql - 如何处理从多个请求生成自定义复合键
- google-apps-script - 在输入特定单词时寻找弹出窗口 google sheet
- python - 使用 python 将 C 代码拆分为语句
- wordpress - Wordpress:通过小部件创建自定义页面
- sabre - BargainFinderMaxRQ 隔日响应无可用性错误
- rest - 使用服务帐户和 oauth2 调用 autoML Google API
- forms - TYPO3 8.7 EXT:form - 在刷新页面之前不会在整理器中显示闪烁消息
- windows - 在 Windows 上使用带有 Code::Blocks 的 SDL-C 库...向导找不到 SDLmain 库文件
- ios - 在 Swift 中的 TableViewCell 中居中 iCarousel
- javascript - JavaScript 中的小数舍入