Вы создали на диске ряд файлов и/или каталогов, и они вам больше не нужны. Вы хотите их удалить.
Решение
Используйте один из двух методов экземпляра, removeItemAtPath: error: или removeItemAtURL: error:, относящихся к классу NSFileManager. Первый метод принимает путь как строку, а второй — как URL.
Обсуждение
Пожалуй, удаление файлов и каталогов — одна из простейших операций, которые можно совершать в файловом менеджере. В iOS нужно обязательно помнить о том, где вы храните ваши файлы и каталоги, а когда хранить их больше не требуется — избавляться от файлов и каталогов. Например, создадим пять текстовых файлов в каталоге tmp/text, а когда закончим работу с ними — удалим эти файлы. Тем временем мы успеем перечислить содержимое каталога по состоянию до и после удаления. Будем делать перечень лишь для того, чтобы убедиться, что все работает правильно. Как вы помните, на момент установки приложения каталог tmp/ существует, а каталог tmp/text — нет. Поэтому для начала потребуется создать второй каталог. Как только закончим работу с файлами, удалим и сам каталог:
/* Создаем каталог по заданному пути */
— (void) createFolder:(NSString *)paramPath{
NSError *error = nil;
if ([self.fileManager createDirectoryAtPath: paramPath
withIntermediateDirectories: YES
attributes: nil
error:&error] == NO){
NSLog(@"Failed to create folder %@. Error = %@",
paramPath,
error);
}
}
/* Создаем пять файлов с расширением. txt в заданном каталоге, называем
их 1.txt, 2.txt и т. д. */
— (void) createFilesInFolder:(NSString *)paramPath{
/* Создаем 10 файлов */
for (NSUInteger counter = 0; counter < 5; counter++){
NSString *fileName = [NSString stringWithFormat:@"%lu.txt",
(unsigned long)counter+1];
NSString *path = [paramPath stringByAppendingPathComponent: fileName];
NSString *fileContents = [NSString stringWithFormat:@"Some text"];
NSError *error = nil;
if ([fileContents writeToFile: path
atomically: YES
encoding: NSUTF8StringEncoding
error:&error] == NO){
NSLog(@"Failed to save file to %@. Error = %@", path, error);
}
}
}
/* Перечисляем все файлы/каталоги, расположенные по заданному пути */
— (void) enumerateFilesInFolder:(NSString *)paramPath{
NSError *error = nil;
NSArray *contents = [self.fileManager contentsOfDirectoryAtPath: paramPath
error:&error];
if ([contents count] > 0 &&
error == nil){
NSLog(@"Contents of path %@ = \n%@", paramPath, contents);
}
else if ([contents count] == 0 &&
error == nil){
NSLog(@"Contents of path %@ is empty!", paramPath);
}
else {
NSLog(@"Failed to enumerate path %@. Error = %@", paramPath, error);
}
}
/* Удаляем все файлы/каталоги по заданному пути */
— (void) deleteFilesInFolder:(NSString *)paramPath{
NSError *error = nil;
NSArray *contents = [self.fileManager contentsOfDirectoryAtPath: paramPath
error:&error];
if (error == nil){
error = nil;
for (NSString *fileName in contents){
/* У нас есть имя файла, но, чтобы удалить этот файл,
нужен полный путь к нему */
NSString *filePath = [paramPath
stringByAppendingPathComponent: fileName];
if ([self.fileManager removeItemAtPath: filePath
error:&error] == NO){