Как удалить ВСЕ ФАЙЛЫ в указанном каталоге приложения?
Учитывая каталог [[self documentsDirectory] stringByAppendingPathComponent:@"Photos/"]
, как удалить ВСЕ ФАЙЛЫ в этой папке?
(предположим правильный путь каталога документов)
Ответы
Ответ 1
NSFileManager *fm = [NSFileManager defaultManager];
NSString *directory = [[self documentsDirectory] stringByAppendingPathComponent:@"Photos/"];
NSError *error = nil;
for (NSString *file in [fm contentsOfDirectoryAtPath:directory error:&error]) {
BOOL success = [fm removeItemAtPath:[NSString stringWithFormat:@"%@%@", directory, file] error:&error];
if (!success || error) {
// it failed.
}
}
Я оставляю это для вас, чтобы сделать что-то полезное с ошибкой, если она существует.
Ответ 2
если вы хотите удалить файлы и сам каталог, используйте его без for
loop
NSFileManager *fm = [NSFileManager defaultManager];
NSString *directory = [[self documentsDirectory] stringByAppendingPathComponent:@"Photos"];
NSError *error = nil;
BOOL success = [fm removeItemAtPath:cacheImageDirectory error:&error];
if (!success || error) {
// something went wrong
}
Ответ 3
для быстрых любителей:
let fm = NSFileManager.defaultManager()
do {
let folderPath = ...
let paths = try fm.contentsOfDirectoryAtPath(folderPath)
for path in paths
{
try fm.removeItemAtPath("\(folderPath)/\(path)")
}
} catch let error as NSError {
print(error.localizedDescription)
}