Cómo eliminar todos los archivos y carpetas en una carpeta de Android
Utilizo este código para eliminar todos los archivos:
File root = new File("root path"); File[] Files = root.listFiles(); if(Files != null) { int j; for(j = 0; j < Files.length; j++) { System.out.println(Files[j].getAbsolutePath()); System.out.println(Files[j].delete()); } }
Se eliminará false donde Files[j]
es una carpeta.
- ¿Cuándo usar actores en libgdx? ¿Cuáles son contras y pros?
- Java convertir ArrayList a cadena y volver a ArrayList?
- Importar una biblioteca como un paquete privado
- ¿Cómo implementar una arquitectura REST y ContentProvider sencilla usando Modelos?
- Cómo apoyar AARs en Eclipse?
Quiero eliminar la carpeta y todos sus archivos secundarios.
¿Cómo puedo modificar esto?
- Cómo activar mediante programación GPS en Android Cupcake
- ClassNotFoundException, aunque el contenedor JAR es parte de la compilación
- Cómo enviar datos al servidor en android
- Apache HttpClient 4.0 falla en el tiempo de espera para socket en Android
- La textura de OpenGL no sigue la geometría
- Cómo resolver "Este elemento no tiene fuente adjunta y el Javadoc no se pudo encontrar en el adjunto Javadoc"?
- ¿Cómo declarar varios atributos estilables con el mismo nombre para diferentes etiquetas?
- No se puede ejecutar dex: se superó el límite superior de GC en Eclipse
La forma más sencilla sería utilizar FileUtils.deleteDirectory de la biblioteca IO de Apache Commons.
File dir = new File("root path"); FileUtils.deleteDirectory(dir);
Tenga en cuenta que esto también eliminará el directorio que contiene.
Añadir esta línea en el archivo gradle para tener Apache
compile 'org.apache.commons:commons-io:1.3.2'
Compruebe este enlace también cómo eliminar la carpeta de almacenamiento interno en android? .
void DeleteRecursive(File fileOrDirectory) { if (fileOrDirectory.isDirectory()) for (File child : fileOrDirectory.listFiles()) DeleteRecursive(child); fileOrDirectory.delete(); }
File file = new File("C:\\A\\B"); String[] myFiles; myFiles = file.list(); for (int i=0; i<myFiles.length; i++) { File myFile = new File(file, myFiles[i]); myFile.delete(); } B.delete();// deleting directory.
Puede escribir el método de esta manera: Elimina todos los archivos y subdirectorios en dir.Returns true si todas las eliminaciones se han realizado correctamente. Si falla una eliminación, el método deja de intentar eliminar y devuelve false.
public static boolean deleteDir(File dir) { if (dir.isDirectory()) { String[] children = dir.list(); for (int i=0; i<children.length; i++) { boolean success = deleteDir(new File(dir, children[i])); if (!success) { return false; } } } // The directory is now empty so delete it return dir.delete(); }
Puede comprobar de la siguiente manera:
for(j = 0; j < Files.length; j++) { if(file.isDirectory()){ for(File f : file.listFiles()){ System.out.println(Files[j].getAbsolutePath()); System.out.println(Files[j].delete()); } else { System.out.println(Files[j].getAbsolutePath()); System.out.println(Files[j].delete()); } }
Puede probar este código para eliminar archivos y subfiles
public void deleteFile(File f){ String[] flist=f.list(); for(int i=0;i<flist.length;i++){ System.out.println(" "+f.getAbsolutePath()); File temp=new File(f.getAbsolutePath()+"/"+flist[i]); if(temp.isDirectory()){ deleteFile(temp) ; temp.delete(); }else{ temp.delete(); }
Para su caso, esto funciona perfectamente http://commons.apache.org/proper/commons-io/apidocs/org/apache/commons/io/FileUtils.html#cleanDirectory(java.io.File)
File dir = new File("dir_path"); if(dir.exists() && dir.isDirectory()) { FileUtils.cleanDirectory(dir); }
Si quieres eliminar la carpeta misma. (No tiene que estar vacío). Puede ser utilizado para archivos también.
File dir = new File("dir_path"); if(dir.exists()) { FileUtils.forceDelete(dir); }
Si storageDir es un directorio
for(File tempFile : storageDir.listFiles()) { tempFile.delete(); }
Este código funciona para mí. "ImagesFolder" tiene algunos archivos y carpetas que a su vez tiene archivos.
if (imagesFolder.isDirectory()) { String[] children = imagesFolder.list(); //Children=files+folders for (int i = 0; i < children.length; i++) { File file=new File(imagesFolder, children[i]); if(file.isDirectory()) { String[] grandChildren = file.list(); //grandChildren=files in a folder for (int j = 0; j < grandChildren.length; j++) new File(file, grandChildren[j]).delete(); file.delete(); //Delete the folder as well } else file.delete(); } }
# 1
File mFile = new File(Environment.getExternalStorageDirectory() + "/folder"); try { deleteFolder(mFile); } catch (IOException e) { Toast.makeText(getContext(), "Unable to delete folder", Toast.LENGTH_SHORT).show(); } public void deleteFolder(File folder) throws IOException { if (folder.isDirectory()) { for (File ct : folder.listFiles()){ deleteFolder(ct); } } if (!folder.delete()) { throw new FileNotFoundException("Unable to delete: " + folder); } }
# 2 (raíz)
try { Process p = Runtime.getRuntime().exec("su"); DataOutputStream outputStream = new DataOutputStream(p.getOutputStream()); outputStream.writeBytes("rm -Rf /system/file.txt\n"); outputStream.flush(); p.waitFor(); } catch (IOException | InterruptedException e) { Toast.makeText(getContext(), e.getMessage(), Toast.LENGTH_SHORT).show(); }
- Color del borde en el botón de Android
- Android Eclipse NoClassDefFoundError para archivos .jar externos