0

画像を保存したフォルダーパスを変更しようとしています。(myfolder から yourfolder へ)
私の書いたコードは次のようなものです。

以下のコードを実行すると、エラーが発生します。変更前のフォルダから読み込もうとしていると思います。

変更されたフォルダから画像ファイルをロードする方法は? 助けてください。:o

// image loading.
UIImage *image1 = [UIImage imageNamed:@"alarm.png"];
UIImageView *imageView1 = [[UIImageView alloc] initWithImage:image1];
imageView1.center = CGPointMake(100, 100);
[self.view addSubview:imageView1];

// get document path.
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *appsDirectory = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentPath = [appsDirectory objectAtIndex:0];

// create myFolder path.
NSString *myFolderPath = [documentPath stringByAppendingPathComponent:@"myFolder"];
if ([fileManager createDirectoryAtPath:myFolderPath withIntermediateDirectories:YES attributes:nil error:nil]){
    NSLog(@"success");
}
else {
    NSLog(@"failed");
}

// write image to saveImage@2x.png file.
NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image1)];

NSString *saveName = @"saveImage@2x.png";
NSString *savePath = [myFolderPath stringByAppendingPathComponent:saveName];
[imageData writeToFile:savePath atomically:YES];


// load from saved the image1 to image2
UIImage *image2 = [UIImage imageWithContentsOfFile:savePath];


// change folderpath from myfolder to yourfolder
NSString *yourFolderPath = [documentPath stringByAppendingPathComponent:@"yourFolder"];
if ([fileManager moveItemAtPath:myFolderPath toPath:yourFolderPath error:NULL]){
    NSLog(@"USER folder success");
}
else {
    NSLog(@"USER folder fail");
}

// attach image2 to self.view
UIImageView *imageView = [[UIImageView alloc] initWithImage:image2];
imageView.center = CGPointMake(100, 200);
[self.view addSubview:imageView];


// it's occurs error.

以下はログリストです。

2012-12-02 17:56:31.273 FolderTest[3372:11303]

成功/Application Support/iPhone Simulator/6.0/Applications/757CBD0E-CB49-4385-AF10-27322FB98381/Documents/myFolder/saveImage@2x.png' error = 2 (そのようなファイルまたはディレクトリはありません)
ImageIO: CGImageRead_mapData 'open' failed'/ Users/nice7285/Library/Application Support/iPhone Simulator/6.0/Applications/757CBD0E-CB49-4385-AF10-27322FB98381/Documents/myFolder/saveImage@2x.png' エラー = 2 (そのようなファイルまたはディレクトリはありません)

4

2 に答える 2

0

これはディレクトリを作成していないというエラーではありませんが、イメージを割り当てずにサンドボックスに保存したためにこのエラーが発生します

解決:-

// write image to saveImage@2x.png file.
NSData *imageData = [[NSData alloc]initWithData:UIImagePNGRepresentation(image1)];

NSString *saveName = @"saveImage@2x.png";
NSString *savePath = [myFolderPath stringByAppendingPathComponent:saveName];
[imageData writeToFile:savePath atomically:YES];

また、割り当てられたオブジェクトexを使用してフェッチします。

// load from saved the image1 to image2

UIImage *image2 = [[UIImage alloc] initWithContentsOfFile:savePath];
于 2012-12-03T10:41:46.300 に答える
0

よくわかりませんが、いくつかの提案があります

create folder 行を次のように変更してみてください

[fileManager createDirectoryAtPath:dataPath withIntermediateDirectories:NO attributes:nil error:nil];

この関数を使用してデータを書き込みます

NSError *error;
[imageData writeToFile:savePath options:NSDataWritingAtomic error:&error];

その助けを願っています

于 2012-12-02T11:34:56.897 に答える