gpt4 book ai didi

ios - googledrivesdk和文件夹的处理

转载 作者:行者123 更新时间:2023-11-29 03:08:27 25 4
gpt4 key购买 nike

我正在考虑在我编写的 iOS 应用程序中添加对 Google 云端硬盘的支持。这不是我的问题 - 有很多关于如何做到这一点的不错的文档。

我的问题是此应用程序的数据源是一个文件夹。可以想象,该文件夹可能包含数十个(嵌套的)子文件夹和散布在各处的数百个文件。

当我搜索 Google Drive 的文档时,有大量关于处理单个文件的信息;然而,关于文件夹处理的信息非常少(文件夹似乎具有独特的 MIME 类型)。

因此,假设我可以运行查询来识别引用我感兴趣的文件夹(数据源)的 GTLDriveFile,我需要将该文件夹的全部内容(完整的层次结构)下载到我的应用程序的沙箱中。顺便说一句,此应用程序主要用于平板电脑 (iPad)。

我该怎么做?

谢谢,

最佳答案

Google 云端硬盘模型在内部是一个平面模型,带有指向 parent 和 child 的指针,任何将其转换到传统的基于树的模型的实现都需要仔细考虑。

由于我不在 iOS 中工作,所以我会尽量保持笼统,引用 JAVA 代码片段;将它翻译成任何语言应该很容易(相信 iOS 具有某种“C”风格之王)。

因此,每次检索文件夹/文件的尝试都必须从驱动器根开始,枚举它的子项。例如,在新的 Google Drive API (GDAA) 中,您将使用其中之一。

DriveFolder.listChildren(gac).await()  
DriveFolder.queryChildren(gac, query).await();

其中“gac”是 GoogleApiClient 实例,“query”来自 Query.Builder()...

当您继续前进时,您将获得对象的元数据,为您提供有关对象的完整信息(mime、状态、标题、类型...),您处理重复项(是的,您可以拥有多个文件夹/文件相同的名称 - 但唯一的 ID)。当您点击文件夹时,开始另一次迭代。在此过程中,您可以使用文件夹/文件的唯一资源 ID(您在文件/文件夹的 http 地址中看到的字符串)来缓存结构。

目前 Java/Android 世界中有 2 个不同的 API,旧的 RESTFul APIthe new GDAA (我不知道它如何适用于 iOS)。我有 some code here ,显示递归树 (buildTree()),以及在 (findFirst()) 中处理重复文件/文件夹名称的代码。但不幸的是,它是 GDAA 风格下的 Java,因此它对您的情况可能不是很有用。

另一件值得一提的事情是,您可以仅“列出”或“查询”一个文件夹级别(不是子文件夹)的子项,或者您可以查询(但不列出)当前范围内的全局所有对象(FILE范围仅在 GDAA 中,许多范围在 RESTful 中)。

关于ios - googledrivesdk和文件夹的处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22505294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com