我正在使用以下代码片段尝试将文件从我的应用程序资源目录复制到 Documents 区域。我在 Github 上的PocketOCR项目中使用了以下内容:
// Set up the tessdata path. This is included in the application bundle
// but is copied to the Documents directory on the first run.
NSString *dataPath = [[self applicationDocumentsDirectory] stringByAppendingPathComponent:@"tessdata"];
NSFileManager *fileManager = [NSFileManager defaultManager];
NSLog(@"Datapath is %@", dataPath);
// If the expected store doesn't exist, copy the default store.
if (![fileManager fileExistsAtPath:dataPath ]) {
NSLog(@"File didn't exist at datapath...");
// get the path to the app bundle (with the tessdata dir)
NSString *bundlePath = [[NSBundle mainBundle] bundlePath];
NSString *tessdataPath = [bundlePath stringByAppendingPathComponent:@"tessdata"];
if (tessdataPath) {
[fileManager copyItemAtPath:tessdataPath toPath:dataPath error:NULL];
}
}
这是我从调用上面得到的输出:
2012-06-06 14:53:42.607 MyApp [1072:707] 数据路径是 /var/mobile/Applications/9676D920-D6D1-4F86-9177-07CC3247A124/Documents/tessdata 打开数据文件 /var/mobile/Applications/9676D920 时出错-D6D1-4F86-9177-07CC3247A124/Documents/tessdata/eng.traineddata
我的 eng.traineddata 文件位于我的 xcode 项目中,如下所示
似乎在尝试检查 if 时正在报告错误fileExistsAtPath
,我不希望这会引发错误,而是返回 YES 或 NO。
有没有更简单的方法来复制eng.traineddata
文件,或者我犯了一个可以在这里更正的错误?