我正在Android SDK for Google Drive上运行查询,以检查是否存在具有特定名称的目录,或者创建它(目录名是Google云端硬盘上的资源标题)。
我使用以下代码时遇到的问题是,它每次都找不到我的文件夹并创建一个新文件夹,我不知道为什么。如果SDK自己创建目录,它会成功找到目录。
public static final String FOLDER_NAME_CORE = "My Core Folder";
MetadataBuffer meta = Drive.DriveApi.query(mGoogleApiClient, new Query.Builder()
.addFilter(Filters.eq(SearchableField.TRASHED, false))
.addFilter(Filters.eq(SearchableField.TITLE, FOLDER_NAME_CORE ))
.setSortOrder(new SortOrder.Builder().addSortDescending(SortableField.MODIFIED_DATE).build())
.build()).await().getMetadataBuffer();
if (metadataBufferResult.getCount() > 0) {
Log.d(TAG, "Creating new folder");
...
} else {
Log.d(TAG, "Using existing folder");
}
我已尝试将该文件夹公开共享,但它没有改变任何内容(如预期的那样)。有谁知道我必须改变什么才能让它找到现有的文件夹呢?据我所知this list是唯一可能的搜索选项。
答案 0 :(得分:0)
我希望你知道支持的scopes 我认为有两件事会导致您的问题,您将不得不重新考虑您的应用程序的逻辑。
首先,GDAA(与REST Api不同)会引入一些延迟,因此即使您获得了DriveId,驱动器上的文件/文件夹也可能暂时不存在(请参阅{{3 }})。
其次,使用TITLE作为存在指标的事实在GooDrive世界中不起作用,因为TITLE不是唯一的(你已经知道)。
我会推荐这种方法:
祝你好运