2010-09-04 57 views
2

我希望有人可以提出一種方法,我可以用UITableView自動「觀察」文件系統中的更改。自動觀察UITableView中的文件系統更改

我有一個UITableView填充我的目錄中的文件的內容。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

NSFileManager *manager = [NSFileManager defaultManager]; 
NSArray *fileList = [manager directoryContentsAtPath:documentsDirectory]; 

然後我在cellForRowAtIndexPath中使用這個數組來顯示項目。現在,如果我添加對刪除項目的支持,則需要添加一個步驟:我必須刪除物理文件並更新我的陣列。

有一個更好的方法,但我無法找到它,儘管搜索很多。

謝謝!

回答

1

通常這可以通過NSWorkspace ...實現,這在iPhone上不受支持。但由於除了您以外,沒有人應該在您的文檔目錄中寫入,您可以輕鬆實施包含此「額外步驟」的解決方案。我不認爲這太不雅。

0

您可以將NSFileManager包裝在您自己的類中,並且此類將通過KVO,NSNotification或臨時委託通知您的代碼。這樣的一個類可以很容易地通過不同的項目重用;這裏去了這樣一個類頭的一個片段:

@interface FileManagerWrapper : NSObject 
{ 
@private 
    NSFileManager *_fileManager; 
    NSString *_documentsDirectory; 
    id<FileManagerWrapperDelegate> _delegate; 

} 

@property (nonatomic, copy) NSString *documentsDirectory; 
@property (nonatomic, assign) id<FileManagerWrapperDelegate> delegate; 

- (void)removeFile:(NSString *)path; 

@end 
相關問題