2011-04-08 169 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);