Я хочу проверить один файл в папке «Документ». Я хочу, чтобы этот файл не существовал в папке документа, скопировав его из основного пакета в папку документа. Я пишу этот код и этот файл, чтобы копировать, но моя проблема здесь ..... !!!! мой файл .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'. Также запишите полученную строку 'FileDB', используя' NSLog() '. Также не пропускайте 'error: nil'; используйте этот механизм, чтобы получить лучшую отчетность об ошибках ... это стоит 2 минуты усилий. – trojanfoe
1. Вы должны начинать имена методов строчными буквами. 2. Если вы передаете указатель на не-объект, не используйте 'nil', вместо этого используйте' NULL'. –
Возможно, он скопировал старый файл, который у вас был ранее в вашем пакете, или он, возможно, сохранил более старую копию в папке ваших документов и не заменяет ее. Возможно, вам придется очистить папку документов до копирования. – ApolloSoftware