Подтвердить что ты не робот

Как удалить ВСЕ ФАЙЛЫ в указанном каталоге приложения?

Учитывая каталог [[self documentsDirectory] stringByAppendingPathComponent:@"Photos/"], как удалить ВСЕ ФАЙЛЫ в этой папке?

(предположим правильный путь каталога документов)

4b9b3361

Ответ 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)
    }