2016-01-15 47 views
0

我想继续将ios应用程序的文件放在用户驱动器根目录下的相同子目录中。如何在Google云端硬盘中按名称查找文件夹?

我可以创建一个新文件夹,在该新文件夹内创建文件,但我不想负责将我最初创建的文件夹的ID保存到永久。必须有一种方法来重新发现相同的目录,并继续在该目录中进行。但是,API似乎不允许它。如果我得到一个返回的GTLDriveChildReference的数组查询似乎没有成为一个标题字段与之比较反对我希望把我的文件目录的标题。

[GTLQueryDrive *query = [GTLQueryDrive queryForChildrenListWithFolderId:@"root"]; 
query.q = @"mimeType='application/vnd.google-apps.folder' and 'root' in parents and trashed=false"; 
[self.driveService executeQuery:query completionHandler::^(GTLServiceTicket *ticket, 
             GTLDriveChildList *children, 
             NSError *error) { 
    if (nil == error) { 
    for (GTLDriveChildReference *child in children) { 
     NSLog(@"File Id: %@", child.identifier); 
    } 
    } else { 
    NSLog(@"An error occurred: %@", error); 
    } 
}]; 

回答

0

谷歌驱动器API的客户端应该仍然能够过滤掉因为Drive的query language查询,您可以指定mimeType为文件夹并使用其名称进行查询。

1

以下是我做的一个最近的一个项目,在那里我需要一个文件夹,名为“新”

func getFolderNewID() 
{ 
    // return the ID of the 'new' folder 
    // create it if it's not there   
    let query = GTLQueryDrive.queryForFilesList() 
    query.q = "'root' IN parents and title = 'new' and trashed = false" 

    googleDrive.service.executeQuery(
     query, 
     delegate: self, 
     didFinishSelector: "returnedFolderForNew:finishedWithObject:error:") 
} 

func returnedFolderForNew(ticket : GTLServiceTicket, finishedWithObject response : GTLDriveFileList, error : NSError?) 
{ 

    if let _ = error 
    { 
     return 
    } 


    if response.items() == nil 
    { 
     // nothing returned - go create a folder 
     createFolderNew() 
     return 
    } 

    for fileItem in response.items() 
    { 
     googleDrive.folderNew = fileItem.identifier!! 
    } 
} 

一旦你的fileItem.identifier,您可以使用查询,在检查标识符父母亲

相关问题