嗯,我在手機上調試我的android應用程序。 Eclipse中有一個文件資源管理器,我可以根據需要導航和刪除一些文件。我的應用程序的數據庫文件位於「/ data」下(默認情況下),但使用Eclipse的文件資源管理器,我無法訪問此文件夾。刪除android sqlite數據庫文件
所以我的問題是'爲什麼我沒有訪問'?
和
是否有訪問這個文件夾的方法嗎?
謝謝!
...
我刪除我的數據庫文件的方法是: context.deleteDatabase(DATABASE_NAME);
嗯,我在手機上調試我的android應用程序。 Eclipse中有一個文件資源管理器,我可以根據需要導航和刪除一些文件。我的應用程序的數據庫文件位於「/ data」下(默認情況下),但使用Eclipse的文件資源管理器,我無法訪問此文件夾。刪除android sqlite數據庫文件
所以我的問題是'爲什麼我沒有訪問'?
和
是否有訪問這個文件夾的方法嗎?
謝謝!
...
我刪除我的數據庫文件的方法是: context.deleteDatabase(DATABASE_NAME);
所以我的問題是:「爲什麼我不能訪問」?
你可能不具有讀取和寫入權限的文件夾
是否有訪問這個文件夾的方法嗎?
是的。您需要擁有根訪問權限並使用讀寫權限重新安裝該文件夾。
你需要root訪問權限。通常你的設備必須先植根,然後才能做到這一點。
瞭解更多有關生根: http://www.androidcentral.com/root
由於您的手機沒有固定,因此Eclipse/DDMS沒有權限查看該文件夾。從安全角度來看,這是非常正確的,否則您可以編輯/刪除/妥協任何應用程序的數據,而不僅僅是您自己的數據。當你從一個try catch塊中調用該文件,這將讓你開始
private void writeToSD() throws IOException {
File f=new File("/data/data/yourPackageName/databases/DatabaseName");
FileInputStream fis=null;
FileOutputStream fos=null;
try{
fis=new FileInputStream(f);
fos=new FileOutputStream("/mnt/sdcard/dump.db");
while(true){
int i=fis.read();
if(i!=-1){
fos.write(i);
}
else{
break;
}
}
fos.flush();
}
catch(Exception e){
e.printStackTrace();
}
finally{
try{
fos.close();
fis.close();
}
catch(IOException ioe){
System.out.println(ioe);
}
}
}
檢查異常:
試試這個。乾杯!!
如果他知道包,他可以將文件寫入SD。沒有根需要。 – Skynet