2016-01-15 83 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,您可以使用查詢,在檢查標識符父母親

相關問題