即時消息添加「移動到文件夾」功能到我的應用與Dropbox的支持。我試圖讓所有的文件夾,以及整個用戶的Dropbox子文件夾。繼承人的代碼我現在所擁有的,如果登錄,有正確的順序,而是向後Dropbox中的所有文件夾和文件夾的列表
-(void)restClient:(DBRestClient *)client loadedMetadata:(DBMetadata *)metadata {
if (allFolders == nil) {
allFolders = [[NSMutableArray alloc] init];
[allFolders addObject:@"/"];
}
for (DBMetadata *fileMetadata in metadata.contents) {
if ([fileMetadata isDirectory]) {
NSArray *filePathComponents = [fileMetadata.path pathComponents];
NSString *inFolder = [filePathComponents objectAtIndex:[filePathComponents count]-2];
NSLog(@"file is in folder %@",inFolder);
[allFolders insertObject:fileMetadata.filename atIndex:[allFolders indexOfObject:inFolder]];
if ([metadata.contents count] > 0) [[self restClient] loadMetadata:fileMetadata.path];
}
}
}
這個問題是我hViewFoldersViewController
也有顯示的應用程序的文件目錄下的所有文件夾,我用一個自定義NSObject
稱爲文件夾項目,它存儲表格的所有項目路徑,名稱和縮進級別。如果我使用這種方法,我不能得到路徑,因爲在Dropbox幫助器類中的所有文件夾,我可以將它移動到viewcontroller
,但令我困惑的是獲取objectAtIndex
。如果我只是添加對象,它會顯示所有的第一級文件夾,然後第二,然後第三。我想要它,所以如果在保管箱中有一個名爲「測試1」的文件夾,然後測試1包含「測試2」,那麼它會顯示測試1,然後再縮進測試2文件夾,然後是其他第一個目錄文件夾。如果我在數組中使用我的FolderItem,我找不到objectAtIndex
。我怎樣才能得到我需要插入的文件夾索引呢?
僅供參考 - Dropbox頁面https://www.dropbox.com/developers/reference/bestpractice指出您不應該得到用戶的Dropbox文件的遞歸列表。 – rmaddy
我使用的應用程序執行此操作,並且用戶必須通過所有文件夾才能最終找到正確的文件夾,這會很煩人。他們可能只是說不要試圖在整個Dropbox中獲取每一個文件,即時獲取文件夾,所以如果他們有一個名爲「書籍」的文件夾,然後是一個名爲「PDFS」的子目錄,他們不必通過2個文件夾,而是在其上1頁。更輕鬆。 – Maximilian
考慮你正在爲每一個目錄進行網絡調用。什麼是用戶有幾十個目錄?爲什麼讓用戶在每次網絡通話時等待?考慮到在OS X中,當您保存文件時,用戶必須手動遍歷目錄結構。節省時間和帶寬,並考慮讓用戶根據需要進行導航,而不是預加載所有內容。 – rmaddy