2012-03-01 81 views
5

我通過以下link去它說,外部的文件夾會自動我的應用程序的卸載過程中被刪除。如何在Android中卸載我的應用程序時從SDCard中刪除文件夾?

我使用下面的代碼來創建文件夾和文件:

private static String TEMP_FOLDER_PATH = Environment.getExternalStorageDirectory() + "/myAppFolder/"; 

我的問題是,當我卸載該應用程序的文件夾myAppFolder沒有被清除。

我是不是走錯了地方?

回答

10

將它保存在您的應用程序私人文件夾(/ data/data/yourappPackege)。卸載應用程序時,該文件夾將被刪除。
您可以使用方法getFilesDir() 的其他文件無法刪除,因爲您的應用程序並不「知道」被刪除時,它讓你的私人文件夾。

+0

謝謝你一個非常快速的答覆...讓我試試......拉吉 – Nik 2012-03-01 09:59:30

+0

這個作品謝謝我需要做的是唯一通過追加/ Android/data/myappPackage更改路徑名稱 – Nik 2012-03-01 11:16:03

1

嘿鏈接說,如果你使用getExternalCacheDir()卸載應用程序時,則只有文件夾自動刪除。所以請糾正你的自我。如果使用的是getExternalStorageDirectory,則必須通過編程

刪除可以用下面的代碼

字符串TEMP_FOLDER_PATH = Environment.getExternalStorageDirectory()+「/ myAppFolder /」的文件夾手動刪除文件夾中;

File f1=new File(TEMP_FOLDER_PATH); 
    f1.delete(); 
+0

如何以編程方式執行此操作..我在您的情況下如何卸載我的應用程序時從SD卡刪除文件夾 – Nik 2012-03-01 10:06:18

+0

更新了答案,請檢查 – Maneesh 2012-03-01 10:14:51

+1

那很好.. 。謝謝,但我該如何檢測應用程序何時卸載 – Nik 2012-03-01 10:38:49

0

否。當應用程序卸載時,Android操作系統不會刪除與一個應用程序對應的SDCard文件。

-1

看到刪除

public static boolean deleteDirectory(File path) { 
if(path.exists()) { 
    File[] files = path.listFiles(); 
    if (files == null) { 
     return true; 
    } 
    for(int i=0; i<files.length; i++) { 
    if(files[i].isDirectory()) { 
     deleteDirectory(files[i]); 
    } 
    else { 
     files[i].delete(); 
    } 
    } 
} 
return(path.delete()); 

這項工作}

相關問題