iOS Google Drive SDK 获取子文件夹 ID
Posted
技术标签:
【中文标题】iOS Google Drive SDK 获取子文件夹 ID【英文标题】:iOS Google Drive SDK Get Sub folder ID 【发布时间】:2014-04-28 17:49:52 【问题描述】:我有以下代码,列出了根目录下的文件,但没有列出根目录下的任何子文件夹:
NSString *parentId = @"root";
GTLQueryDrive *queryDrive = [GTLQueryDrive queryForFilesList];
queryDrive.q = [NSString stringWithFormat:@"'%@' in parents and trashed=false", parentId];
[self.driveService executeQuery:queryDrive completionHandler:^(GTLServiceTicket *ticket,GTLDriveFileList *files,NSError *error)
if (error == nil)
NSLog(@"Number of files: %i", [files.items count]);
NSLog(@"Have results");
// Iterate over files.items array
for(GTLDriveFile *file in files)
NSLog(@"File Title: %@ | ID: %@",file.title, file.identifier);
else
NSLog(@"An error occurred: %@", error);
];
这列出了我在文件夹中的 7 个文件,但在这 7 个文件的同一级别,我有一个子文件夹。
例如:
根->file1 根->文件2 ...ETC 都回来了
但是 root->MyFolder 没有在结果集中列出。
有什么想法吗?
【问题讨论】:
好的,我找到了解决方案。我试图获取 id 的子文件夹是手动创建的。我尝试在代码中创建一个子文件夹,现在该子文件夹显示为 id。因此,通过在代码中创建文件夹,我能够做我需要做的事情。 对于现有子文件夹,您可以使用parentID = 'root'
为所有GTLDriveFile
s 枚举mimeType = application/vnd.google-apps.folder
- 为每个应用类型为...GTLQueryDrive *query = [GTLQueryDrive queryForChildrenListWithFolderId:file.identifier];
的子查询,然后是[<GTLDriveService instance> executeQuery:query completionHandler:^(GTLServiceTicket *ticket, GTLDriveChildList *driveFolderChildren, NSError *error) ]
。跨度>
【参考方案1】:
您可能想要检查您是如何验证您的应用的。如果您仅使用应用程序的文件作为您的范围进行身份验证,您将看不到在您的应用程序之外创建的其他文件和文件夹。
当您像这样进行身份验证时:
self.gDriveAuthenticationViewController = GTMOAuth2ViewControllerTouch(scope:kGTLAuthScopeDrive,
clientID:clientId,
clientSecret:clientSecret,
keychainItemName:keychainName,
delegate:self,
finishedSelector:"viewController:finishedWithAuth:error:")
使用范围:kGTLAuthScopeDrive 而不是 kGTLAuthScopeDriveFile
【讨论】:
以上是关于iOS Google Drive SDK 获取子文件夹 ID的主要内容,如果未能解决你的问题,请参考以下文章
google drive SDK for iOS 是不是支持 64 位架构?
获取Google Drive SDK中共享用户的电子邮件地址