我想檢查文檔文件夾中的一個文件。如果此文件不存在於文檔文件夾中,請將其從主包複製到文檔文件夾。我寫這個代碼和這個文件是複製,但我的問題在這裏..... !!!!我的文件是.sqlite文件(數據庫文件),當複製到文檔文件夾沒有自己的數據!爲什麼???而這個文件在主包中有自己的數據。如何將主包中的文件複製到文檔文件夾
這是我的代碼,但我不知道爲什麼不工作!
#define DataName @"mydatabase.sqlite"
- (void)viewDidLoad
{
[self CopyDatabase];
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
}
- (NSString*)DatabasePath
{
NSArray *Paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *DocumentDir = [Paths objectAtIndex:0];
//NSLog(@"%@",DocumentDir);
return [DocumentDir stringByAppendingPathComponent:DataName];
}
- (void)CopyDatabase
{
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:[self DatabasePath]];
NSString *FileDB = [[[NSBundle mainBundle]resourcePath]stringByAppendingPathComponent:DataName];
if (success)
{
NSLog(@"File Exist");
return;
}
else
{
[fileManager copyItemAtPath:FileDB toPath:[self DatabasePath] error:nil];
}
}
顯示DataName'的'定義。還使用'NSLog()'記錄產生的'FileDB'字符串。也不要傳遞'error:nil';使用這種機制來獲得更好的錯誤報告...這是值得的2分鐘的努力。 – trojanfoe
1.你應該用小寫字母開始方法名稱。 2.如果你傳遞一個指向非對象的指針,不要使用'nil',而是使用'NULL'。 – 2013-08-30 13:59:40
它可能正在複製之前在您的軟件包中的舊文件,或者它可能在您的文檔文件夾中保留了較舊的副本,並且未替換它。在複製之前,您可能需要清除文檔文件夾。 – ApolloSoftware