[英]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.