#ios #objective-c #sqlite
#iOS #objective-c #sqlite
Вопрос:
при открытии файла sqlite из почты он попадает в папку с именем входящие в каталоге мои документы, и я использую этот код для копирования этого файла в каталог документов
- (void) copyAdd
{
NSString *docsDir;
NSArray *dirPaths;
NSString *databasePath;
NSFileManager *filemgr = [NSFileManager defaultManager];
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString* inboxPath = [docsDir stringByAppendingPathComponent:@"Inbox"];
// Build the path to the database file
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"CAT.sqlite"]];
if(![filemgr fileExistsAtPath:databasePath]){
[filemgr copyItemAtPath:inboxPath toPath:databasePath error:nil];
NSLog( @"copy create database");
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"sucess" message:@"COPY CAT DB" delegate:self cancelButtonTitle:@"dismis" otherButtonTitles:nil, nil];
[alert show];
}else{
NSLog( @"Failed to open/create database");
}
он создает папку с именем CAT.sqlite, и внутри этой папки я нашел базу данных CAT.sqlite
как я могу скопировать файл с именем CAT.sqlite из папки «Входящие» в каталог документов без создания папки с тем же именем.
Комментарии:
1. В чем был вопрос?
2. необходимо скопировать базу данных в каталог документов без создания какой-либо папки, также необходимо удалить старую базу данных из папки Входящие при получении новой с тем же именем
3. Если у вас есть конкретная проблема, которую нужно решить, то это правильный сайт, чтобы задать интересующие вас вопросы. Однако мы здесь не для того, чтобы внедрять функциональность от вашего имени; мы не работаем для вас. Так что попробуйте и отредактируйте свой вопрос с указанием конкретных проблем, с которыми вы столкнулись, включая подробную информацию о том, что не работает, и о любых полученных вами сообщениях об ошибках.
4. Я думаю, что я спрашиваю о конкретной вещи: почему папка создается вместо копирования базы данных, и я помещаю код, который я использую, поэтому, пожалуйста, если вы не знаете, почему, пожалуйста, не беспокоите меня
5. Опубликованный вами код пытается скопировать
Indbox
папку в файл с именемCAT.sqlite
. Вам нужен путь к файлу вInbox
папке, и вы хотите переместить этот файл, а неInbox
папку.
Ответ №1:
это мой код, который решает проблему, единственное, чего не хватает, — указать имя файла, которое мне нужно скопировать из папки «Входящие», а не из папки «Все», а из папки CAT.sqlite
- (void) copyAdd
{
NSString *docsDir;
NSArray *dirPaths;
NSString *databasePath;
NSFileManager *filemgr = [NSFileManager defaultManager];
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
NSString* inboxPath = [docsDir stringByAppendingPathComponent:@"Inbox"];
NSString *filePath = [inboxPath stringByAppendingPathComponent:@"CAT.sqlite"];
// Build the path to the database file
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"CAT.sqlite"]];
if(![filemgr fileExistsAtPath:databasePath]){
// NSLog(@"dbPAth : %@",dbPAth);
[filemgr copyItemAtPath:filePath toPath:databasePath error:nil];
NSLog( @"copy create database");
UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"sucess" message:@"COPY CAT DB" delegate:self cancelButtonTitle:@"dismis" otherButtonTitles:nil, nil];
[alert show];
}else{
NSLog( @"Failed to open/create database");
}
}