[英]Copy file to documents directory (sandbox) from main bundle
我需要在应用程序的第一次运行时从主捆绑包中将一些png复制到documents文件夹中。 我需要它,因为我必须将这些图像的文件路径保存在核心数据实体中。
我以这种方式尝试过,但没有用,有人知道为什么吗?
// to copy image from main bundle to documents folder
NSString* mainBundleFilePath = [[NSBundle mainBundle] pathForResource:@"SbriciolataDiRicotta" ofType:@"png"];
NSArray *destPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [destPath objectAtIndex:0];
NSData *mainBundleFile = [NSData dataWithContentsOfFile:mainBundleFilePath];
[[NSFileManager defaultManager] createFileAtPath:documentsDirectory
contents:mainBundleFile
attributes:nil];
// to save the file path
NSString*nomeImmagine = [[NSString alloc] initWithFormat:@"SbriciolataDiRicotta"];
NSString *pngFilePath = [NSString stringWithFormat:@"%@/%@.png",documentsDirectory, nomeImmagine];
谢谢
createFileAtPath
希望将要创建的文件路径(而不是封闭目录的路径)作为参数。
备注:
copyItemAtPath:toPath:error:
复制文件而不将全部内容加载到内存中。 initWithFormat
来分配常量字符串。 stringByAppendingPathComponent:
是添加路径组件的正确方法。 如何保存
-(void)saveImageWithID:(NSString*)ID{
//[self saveImageWithID:<#(NSString *)#>];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* imageName = [[NSString alloc] initWithFormat:@"%@",ID];
NSString *pngFilePath = [NSString stringWithFormat:@"%@/%@.png",documentsDirectory, imageName];
UIImage *image = self.fieldImage.image;
NSData *data1 = [NSData dataWithData:UIImagePNGRepresentation(image)];
[data1 writeToFile:pngFilePath atomically:NO];
}
如何从沙箱加载
-(void) loadImageFromPathInsideView
{
// [self loadImageFromPathInsideView];
Contatto* contact =[[DataManager sharedClass]dammiIlTuttoIlContattoDellaCella:self.indice];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString* imageName = [[NSString alloc] initWithFormat:@"%@", contact.nome2];
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString* path = [NSString stringWithFormat:@"%@/%@.png",documentsDirectory, imageName];;
UIImage* image = [UIImage imageWithContentsOfFile:path];
self.fieldImage.image = image;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.