2011-01-20 3 views
14

Я хочу удалить все файлы и каталоги, содержащиеся в каталоге Documents.Как удалить содержимое каталога Documents (а не самого каталога Documents)?

Я считаю, используя [fileManager removeItemAtPath: documentsDirectoryPath error: nil] метод также удалит каталог документов.

Есть ли какой-либо метод, который позволяет удалить содержимое каталога только и оставить там пустой каталог?

ответ

43

Попробуйте это:

NSString *folderPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 
NSError *error = nil; 
for (NSString *file in [[NSFileManager defaultManager] contentsOfDirectoryAtPath:folderPath error:&error]) { 
    [[NSFileManager defaultManager] removeItemAtPath:[folderPath stringByAppendingPathComponent:file] error:&error]; 
} 
2

Swift 3.x

let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] 
guard let items = try? FileManager.default.contentsOfDirectory(atPath: path) else { return } 

for item in items { 
    // This can be made better by using pathComponent 
    let completePath = path.appending("/").appending(item) 
    try? FileManager.default.removeItem(atPath: completePath) 
} 
Смежные вопросы