2012-03-01 43 views
5

Ho esaminato il seguente numero link che dice che le cartelle esterne verranno eliminate automaticamente durante la disinstallazione della mia app.Come eliminare le cartelle dalla SDCard durante la disinstallazione della mia app in Android?

Sto usando il seguente codice per creare le cartelle e file:

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

mio problema è che il MyAppFolder cartella non è sempre eliminato quando disinstalla l'applicazione.

Sto sbagliando dovunque?

risposta

10

Salvalo nella cartella privata dell'app (/ data/data/yourappPackege). Questa cartella verrà rimossa durante la disinstallazione dell'app.
È possibile ottenere la cartella privata con il metodo getFilesDir() Altri file non possono essere rimossi perché l'app non "sa" quando viene rimossa.

+0

grazie una risposta molto veloce ... mi permetta di provare che ... Raj – Nik

+0

funziona questo vi ringrazio l'unica cosa che dobbiamo fare è cambia il nome del percorso aggiungendo/Android/data/myappPackage – Nik

1

Ehi il collegamento dice che Se si utilizza getExternalCacheDir(), solo le cartelle vengono eliminate automaticamente quando si disinstalla l'app. Quindi per favore correggiti. Se si utilizza getExternalStorageDirectory, allora occorre cancellare manualmente la cartella programmando

per eliminare una cartella è possibile utilizzare il codice qui sotto

String = TEMP_FOLDER_PATH Environment.getExternalStorageDirectory() + "/ MyAppFolder /";

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

Come faccio a programmaticamente .. sono nel tuo caso come posso eliminare le cartelle dalla sdcard quando la mia app viene disinstallata – Nik

+0

ha aggiornato la risposta, per favore controlla – Maneesh

+1

Questo va bene .. Grazie, ma come faccio a sapere quando l'applicazione si sta disinstallando – Nik

0

No. Il sistema operativo Android non rimuove i file SDCard corrispondenti a un'app quando l'app viene disinstallata.

-1

vedono questo lavoro per cancellare

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()); 

}

Problemi correlati