c# - 如何使用 C# 在 Google Drive v3 API 的特定文件夹中查找文件?
问题描述
我有一个顶级父文件夹 A,然后在另一个名为 B 的文件夹中,然后我在这些文件夹中有其他文件夹,使用数字 001、002、003 等。在每个文件夹中我都有一个图像。
我要做的就是使用绝对路径按顺序查找所有图像。所以:
folderpath = "/A/B/"
foreach folder inside folderpath:
//folder is going to be 001, 002, 003
files = folder.listfiles()
if (files.Count == 1)
Console.WriteLine(files[0].Name);
我怎样才能做到这一点?
解决方案
基本上,您正在查看两个请求。第一次请求查找目录文件id(父id)。在该目录中查找文件的第二个请求。
获取名称为A的文件夹:
var fileListRequest = service.Files.List();
fileListRequest.Q = "mimeType = 'application/vnd.google-apps.folder' and name contains 'A'";
var fileListResponse = fileListRequest.Execute();
获取具有上一个请求的父 id 的所有文件。
var filesInParent = service.Files.List();
filesInParent.Q = $"parents in {fileListResponse.Files.FirstOrDefault().Id}";
var allFilesInParentResponse = filesInParent.Execute();
如果您有多个名为 A 的目录,则会出现问题,在这种情况下,您可能需要检查其父目录以确保您拥有所需的正确目录。
诀窍是检查mimeType = 'application/vnd.google-apps.folder'
这是否意味着它是一个文件夹。
搜索文档
列出谷歌驱动器上的所有文件
另一种解决方案是仅列出您的谷歌驱动器上的所有文件并在本地对其进行排序。由于页面流媒体的性质,如果您的驱动器帐户上有很多文件,我不建议这样做,因为每次提取都会占用您的配额但是如果您有兴趣,我有一个关于如何做到这一点的教程。 列出 Google 云端硬盘上的所有文件
推荐阅读
- ethereum - 构建我的第一个智能合约应用程序
- python - 我想为 Python 中的 DataFrame 生成“最佳”和“最差”评论的 WordCloud
- reactjs - 无法将参数传递给 React 处理函数
- flutter - 如何将小部件靠近关闭?
- windows - 如何更改 Windows Defender 的日志文件?
- postgresql - Db2 选择子查询
- android - 从 firebase 检索数据时查看 PostIME 0,1 错误
- python - 如何将 Python 网络爬虫打包为 Chrome 扩展程序?
- java - Java - 来自不同对象类型的相同属性的比较器类
- excel - 向 IF/OR 添加多个语句