iOS版 - 如何改变文件目录(iOS - how to change Documents dire

2019-09-20 19:34发布

目前我工作的程序使用核心数据,并在一个名为文件存储“户口”信息Accounts.sqlite此文件存储在Documents目录字符的长字符串,即内部A89C1398-A7BE-44F1-A337-DABA9C66AF1D所以我想保存/在应用程序中创建的文件/var/mobile/Library/KegCop我发现这太问题和我做了必要的修改,删除我的应用程序关闭手机,点击Run在Xcode按钮,内置的应用程序,运行良好。 然而, Accounts.sqlite文件仍然在Documents目录。

我添加/修改后续代码到AppDelegate.m文件,

// default sqlite file path
// NSURL *storeURL = [[self applicationDocumentsDirectory] URLByAppendingPathComponent:@"Accounts.sqlite"];

// jailbroken path - /var/mobile/Library/KegCop/
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *docPath = [documentPaths objectAtIndex:0];

NSURL *storeURL = [NSURL fileURLWithPath: [docPath stringByAppendingPathComponent:@"Accounts.sqlite"]];

然后在创建了以下方法AppDelegate.m文件,

// set path for documents in jailbreak environment
+(NSString *)documentsDirectoryPath
{
#ifdef JAILBREAK

NSString *documentPath =@"/var/mobile/Library/KegCop";

if (![[NSFileManager defaultManager] fileExistsAtPath:documentPath])
{
    [[NSFileManager defaultManager] createDirectoryAtPath:documentPath
                              withIntermediateDirectories:NO
                                               attributes:nil
                                                    error:NULL];
}

return documentPath;

#else

NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [documentPaths objectAtIndex:0];

#endif
}
文章来源: iOS - how to change Documents directory