我想将文件从文档复制到iOS中的资源文件夹。
不是资源来记录。
从文档到资源的文件。
所以我写了以下代码。
- (NSString *) getDBPath2
{
NSString *dbPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Htoo.mp3"];
return dbPath;
}
- (void) copyDatabaseIfNeeded
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSString *dbPath = [self getDBPath];
BOOL success = [fileManager fileExistsAtPath:dbPath];
if(success)
{
NSString *defaultDBPath = [[NSBundle mainBundle] resourcePath];
success = [fileManager copyItemAtPath:defaultDBPath toPath:dbPath error:&error];
if (!success)
NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]);
}
}
- (NSString *) getDBPath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
NSString *documentsDir = [paths objectAtIndex:0];
return [documentsDir stringByAppendingPathComponent:@"Htoo.mp3"];
}
当我写上面的代码时,我收到了错误消息。
2012-08-17 23:55:03.482 TestProjects[1645:f803] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Failed to create writable database file with message 'The operation couldn’t be completed. (Cocoa error 516.)'.'
那么如何将文件从文档复制到iOS中的资源?
感谢您的阅读。
答案 0 :(得分:4)
您的应用程序(Bundle)的资源是只读的,您不能在发布后修改它。 bundle包是由Xcode在编译时创建的,你不能在运行时修改它。安装应用程序后,有很多方法可以存储数据:NSDefaults,sqlite,Core Data,文档目录。
答案 1 :(得分:0)
如果您想保存MP3,那么最好将其保存在缓存中:
NSString *desPath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];