アプリケーションの起動時にバンドル resourcePath から選択したファイルを取得しようとしています。リソース パスにあるすべてのファイルを取得できますが、BGImage.plist に保存されている名前のファイルを取得しようとすると、「cocoa 260」というエラーが発生します (指定されたパスにアイテムが見つかりません)。
しかし、画像はパスに存在し、[fileManager copyItemAtPath:bundlePath toPath:BGImagePath error:nil]; を実行することですべての画像を取得できます。
以下のコードは動作しません.. (参照: iPhone (iOS): メイン バンドルからドキュメント フォルダへのファイルのコピー エラー)
NSString* BGImagePath =[[[AppDelegate applicationDocumentsDirectory]
URLByAppendingPathComponent:@"BGImages" isDirectory:YES]
path];
NSFileManager* fileManager = [NSFileManager defaultManager];
NSError *error = nil;
NSArray *folderContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:BGImagePath error:&error];
NSString *bundlePath = [[NSBundle mainBundle] resourcePath];
NSString *BundleImagePath = [[[NSBundle mainBundle] bundlePath] stringByAppendingPathComponent:@"BGImages.plist"]; //has file names
bgImagesArray = [[NSArray arrayWithContentsOfFile:BundleImagePath] retain];
if (folderContents.count == 0) {
for (id obj in bgImagesArray) {
NSError* error;
if ([fileManager
copyItemAtPath:[bundlePath :obj]
toPath:[BGImagePath stringByAppendingPathComponent:obj]
error:&error])
NSLog(@" *-> %@", [bundlePath stringByAppendingPathComponent:obj]);
}
}
}
名前を plist に保存せずに特定のファイルを取得する他のエレガントな方法はありますか?