如何遍歷一個文件夾(包含可能有更多子目錄的子目錄)並刪除不是目錄的文件?基本上,我問如何清除所有的目錄。我在這方面的enumeratorAtPath:
方法有點麻煩,因爲我不知道如何向枚舉器詢問當前文件是否爲目錄。需要查看fileAttributes
字典。注意:這可能對我來說是非常錯誤的,但我用路徑的NSString初始化枚舉器。這會改變什麼嗎?如何枚舉Objective-C中的目錄,並基本清除所有非目錄文件的目錄?
0
A
回答
5
像這樣將工作:
NSURL *rootURL = ... // File URL of the root directory you need
NSFileManager *fm = [NSFileManager defaultManager];
NSDirectoryEnumerator *dirEnumerator = [fm enumeratorAtURL:rootURL
includingPropertiesForKeys:@[NSURLNameKey, NSURLIsDirectoryKey]
options:NSDirectoryEnumerationSkipsHiddenFiles
errorHandler:nil];
for (NSURL *url in dirEnumerator) {
NSNumber *isDirectory;
[url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:NULL];
if (![isDirectory boolValue]) {
// This is a file - remove it
[fm removeItemAtURL:url error:NULL];
}
}
+0
像這樣使用'enumeratorAtURL:...'比使用'enumeratorAtPath:'簡單,因爲'enumeratorAtURL:...'返回絕對URL。 'enumeratorAtPath:'返回相對路徑,如果你正在枚舉當前目錄,那麼你只能直接傳遞給'removeItemAtPath:error:'。 –
相關問題
- 1. 如何枚舉vfs c或C++目錄中的所有文件?
- 2. 枚舉父目錄中的文件
- 3. 枚舉目錄中的圖像文件
- 4. 列出目錄+子目錄中的所有文件和目錄
- 5. 如何枚舉VB.net中的目錄和子目錄
- 6. 腳本蝙蝠刪除所有文件和目錄中的所有目錄c:\
- 7. 刪除目錄和所有子目錄中的特定文件
- 8. 刪除目錄中的所有文件,但保留目錄?
- 9. 如何枚舉WiX中的子目錄?
- 10. 如何遍歷目錄和子目錄中的所有文件
- 11. PHPunit如何排除目錄中的所有文件但不排除子目錄
- 12. 找到目錄中的所有文件不是目錄本身
- 13. 刪除目錄中的所有文件
- 14. 文件夾子目錄「目錄」清單
- 15. 如何枚舉文件夾目錄中,並使用VB
- 16. 如何枚舉所有Java類在目錄中的Jython
- 17. 我如何獲得目錄和子目錄中的所有文本文件?
- 18. 如何排除除一個目錄以外的所有文件和目錄,RewriteCond
- 19. 清除目錄中的文件名
- 20. 查找目錄中的所有目錄
- 21. 查找pwd中所有目錄的目錄中的文件數
- 22. Webdav:枚舉目錄項
- 23. Linux/include目錄枚舉
- 24. 如何查找除.git目錄下的所有目錄?
- 25. 刪除包含非空子目錄和文件的目錄
- 26. PHP刪除的目錄都是空的所有文件和所有子目錄
- 27. 如何獲取包含所有子目錄文件的目錄中的文件?
- 28. APC清除目錄條目
- 29. 想要將目錄中的所有文件批量移動到父目錄並刪除子目錄
- 30. 保持目錄和所有子目錄遞歸除了文件
什麼,特別是,你有麻煩? 'NSDirectoryEnumerator'和'NSFileManager'都有方法給你文件屬性,你可以從中測試目錄狀態。 –