2011-04-08 135 views
6

我知道如何创建sqlite数据库,插入数据到它,删除行等通过iPhone开发,但我想通过编程删除整个数据库本身,但没有得到任何帮助。请有人指导我如何从设备通过代码删除/删除整个sqlite数据库本身。iPhone:删除/删除SQLite数据库?

谢谢!

回答

0

数据库文件在文档目录中,而不是在Bundle中,您可以使用NSFileManager删除文件。 确保任何进度都不会打开。

0

如果你想删除整个数据库,你必须在文件系统中找到它并在那里删除它。

16

如果你的数据库中的文档,你可以尝试:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath =  [documentsDirectory stringByAppendingPathComponent:@"youdb.db"]; 

if([[NSFileManager defaultManager] fileExistsAtPath:filePath]){ 
    [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil]; 
} 
1

尝试

NSError *err; 

NSFileManager *fm = [NSFileManager defaultManager]; 

err = nil; 

NSString *deleteFileName = [NSString stringWithFormat:@"%@/FileName",[[NSBundle mainBundle] resourcePath]]; 

NSURL *url = [NSURL fileURLWithPath:deleteFileName]; 

[fm removeItemAtPath:[url path] error:&err]; 

if(err) 

{ 

NSLog(@"File Manager: %@ %d %@", [err domain], [err code], [[err userInfo] description]); 

} 

else 

{ 

NSLog(@"File %@ deleted.",fileName); 

} 
1

如果你使用Visual Studio中Xamarin这将很好地工作。

string _FileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "databaseFileName.db3");  
File.Delete(_FileName);