Как удалить содержимое каталога Documents (а не самого каталога Documents)?

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

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

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

Ответы

Ответ 1

Попробуйте следующее:

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)
}