У меня есть код, который копирует все каталоги из "/ Documents" в "Library / Caches /".Код выглядит следующим образом:
NSString *oldPath = [NSString stringWithFormat:@"%@/Documents/", NSHomeDirectory()];
NSString *newPath = [NSMutableString stringWithFormat:@"%@/Library/Caches/", NSHomeDirectory()];
NSError *error = nil;
// get the list of all files and directories
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *fileList = [fileManager contentsOfDirectoryAtPath:oldPath error:&error];
if(error != nil)
{
NSLog(@"\n\n\n1. There was an error in the file operation: %@", [error localizedDescription]);
return;
}
for(NSString *file in fileList)
{
NSString *path = [oldPath stringByAppendingPathComponent:file];
NSLog(@"The path for the file is: %@", path);
BOOL isDir = NO;
BOOL dirExists = [fileManager fileExistsAtPath:path isDirectory:(&isDir)];
if(isDir && dirExists)
{
//Move to the new location
[fileManager copyItemAtPath:path toPath:[newPath stringByAppendingPathComponent:file] error:&error];
if(error != nil)
{
NSLog(@"\n\n\n2. There was an error in the file operation: %@", [error localizedDescription]);
}
else
{
[fileManager removeItemAtPath:path error:&error];
if(error != nil)
NSLog(@"\n\n\n3. There was an error in the file operation: %@", [error localizedDescription]);
}
}
}
Копия работает отлично.Я вижу все каталоги, скопированные в новое местоположение.
Проблема в том, что пустые каталоги все еще остаются в папке «Документы».Я прочитал removeItemAtPath
в документации и там написано, что содержимое каталога удалено.Удаляется ли сама директория или нет, не упоминается.
Может кто-нибудь сказать мне, что может быть не так в коде?Почему все еще остаются пустые каталоги?
РЕДАКТИРОВАТЬ:
При первом проходе, когда каталоги существуют в Документах, но не в Библиотеке / Кэшах, removeItemAtPath
не вызывает ошибку.Пустые каталоги все еще остаются в Документах, хотя.На втором проходе приведенного выше кода он пытается удалить пустые каталоги и removeItemAtPath
выдает ошибку какао 516, которая в основном не найдена в файле - это странно, потому что я все еще вижу эти пустые каталоги.
Кроме того, я запускаю этот код на iPhone Simulator 4.3.2 и iPhone Simulator 5.0 и наблюдаю за структурой каталогов на моем Mac в / Users / Библиотека / Поддержка приложений / iPhone Simulator /....