Удаление / перезапись файлов изображений на iphone obj c
Я пытаюсь удалить или перезаписать изображение в определенном каталоге. Я беру все свои изображения в массив и помещаю в табличное представление. При нажатии на изображение открывается фотопленка, и пользователь выбирает изображение. когда контроллер imagepicker освобождается, я вызываю мои методы, чтобы попытаться удалить исходное изображение и сохранить новое изображение в конкретный путь к файлу. Я получаю странную ошибку при удалении изображения и не уверен, как лучше создать журнал для сохранения изображения, но он также не сохраняется. Буду признателен за вклад!
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSLog(@"image picker did finish");
widgetImg.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
change.enabled = YES;
[self saveImage:widgetImg.image :ImgName];
NSString *path = [NSString
stringWithFormat:@"/Library/Themes/%@/iSetUp/UserPhotos/%@",selectedThemeName,ImgName];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
BOOL fileExists = [fileManager fileExistsAtPath:path];
NSLog(@"Path to file: %@", path);
NSLog(@"File exists: %d", fileExists);
NSLog(@"Is deletable file at path: %d", [fileManager isDeletableFileAtPath:path]);
if (fileExists)
{
BOOL success = [fileManager removeItemAtPath:path error:&error];
if (!success) NSLog(@"Error: %@", [error localizedDescription]);
}
[self dismissModalViewControllerAnimated:YES];
}
- (void)saveImage:(UIImage*)image:(NSString*)imageName {
//convert image into .png format.
NSData *imageData = UIImagePNGRepresentation(image);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *IMGPath = [NSString
stringWithFormat:@"/Library/Themes/%@/iSetUp/UserPhotos/",selectedThemeName];
[fileManager createFileAtPath:IMGPath contents:imageData attributes:nil];
NSLog(@"image saved");
}
2012-03-29 16:05:05.907 iSetUp[1258:707] image picker did finish
2012-03-29 16:05:09.046 iSetUp[1258:707] image saved
2012-03-29 16:05:09.047 iSetUp[1258:707] Path to file:
/Library/Themes/Modernistic/iSetUp/UserPhotos/IMG_0183.JPG
2012-03-29 16:05:09.048 iSetUp[1258:707] File exists: 1
2012-03-29 16:05:09.049 iSetUp[1258:707] Is deletable file at path: 0
2012-03-29 16:05:09.053 iSetUp[1258:707] Error: The operation couldn’t be completed.
(Cocoa error 513.)
2 ответа
Вы не можете напрямую получить доступ к таким папкам через iOS SDK. Вы должны сохранять и читать файлы, используя системные функции, которые возвращают правильный путь:
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]
NSString *pathToMenuLoopFile = [rootPath stringByAppendingPathComponent:@"Menu Loop.mp3"];
Если вы хотите загрузить файлы, которые вы включили в свой проект XCode, пожалуйста, посмотрите на этот пост: Загрузка файлов данных в проекте iPhone
Файл не может быть удален ни из-за проблем с правами собственности, ни из-за прав доступа. Смотрите обсуждение isDeletableFileAtPath в