2012-03-01 12 views
5

Revisé el siguiente link que dice que las carpetas externas se eliminarán automáticamente durante la desinstalación de mi aplicación.¿Cómo eliminar carpetas de SDCard durante la desinstalación de mi aplicación en Android?

estoy usando el siguiente código para crear las carpetas y archivos:

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

Mi problema es que el MyAppFolder carpeta no está consiguiendo elimina cuando se desinstala la aplicación.

¿Me equivoco en algún lado?

Respuesta

10

Guárdelo en su Carpeta privada de aplicaciones (/ data/data/yourappPackege). Esta carpeta se eliminará al desinstalar la aplicación.
Puede obtener su carpeta privada con el Método getFilesDir() No se pueden eliminar otros archivos porque su aplicación no "sabe" cuando se está eliminando.

+0

gracias una respuesta muy rápida ... Vamos a tratar de que ... Raj – Nik

+0

esto funciona gracias lo único que hay que hacer es cambie el nombre de la ruta agregando/Android/data/myappPackage – Nik

1

Oye el enlace dice que si usas getExternalCacheDir(), entonces solo las carpetas se borran automáticamente al desinstalar la aplicación. Así que por favor corrige tu identidad. Si está utilizando getExternalStorageDirectory, entonces usted tiene que eliminar manualmente la carpeta mediante la programación de

eliminar una carpeta se puede utilizar a continuación el código

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

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

¿Cómo lo hago programáticamente ... estoy en su caso cómo puedo eliminar carpetas de sdcard cuando mi aplicación se desinstala – Nik

+0

actualizó la respuesta, por favor marque – Maneesh

+1

Eso está bien .. Gracias, pero ¿cómo puedo detectar cuándo la aplicación está desinstalando? – Nik

0

No. El sistema operativo Android no elimina los archivos SDCard correspondientes a una aplicación cuando se desinstala la aplicación.

-1

ver este trabajo para borrar

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

}

Cuestiones relacionadas