Cómo escribir código java para eliminar varios archivos a la vez

En Java, se puede escribir código que eliminar varios archivos a la vez. Esto puede ser un poco más difícil de lo que parece. El código para eliminar el archivo tiene el siguiente aspecto:

archivo nuevo("importantData.txt").borrar()-

En ese código, el archivo nuevo la llamada se refiere a un único archivo. Es un código muy agradable, pero no te dice cómo eliminar un montón de archivos. ¿Cómo se puede escribir código para hacer frente a varios archivos a la vez?

Afortunadamente, Java proporciona formas de lidiar con los manojos de archivos. Una forma utiliza una matriz de Archivo objetos.

IHateTxtFiles de clase java.io.File importación {void Main (args String []) {public static carpeta del archivo = new File ("."): para (Archivo: folder.listFiles ()) {Si (file.getName (). endsWith (".TXT")) {File.delete () -}}}}

En muchos sistemas operativos (incluyendo Windows, Mac OS y Linux), un solo punto se refiere al directorio de trabajo actual: el lugar donde un programa empieza a buscar los archivos. Para que un programa Java que se ejecuta en Eclipse, este directorio de trabajo es el directorio raíz del proyecto.

Por ejemplo, imagina que el código anterior vive en un proyecto llamado Eclipse 16-06. A continuación, el disco duro contiene una carpeta con el nombre 16-06, que a su vez, contiene una carpeta con el nombre src- que a su vez, contiene la IHateTxtFiles.java archivo. directorio de trabajo del programa es el 16-06 directorio. Por lo tanto, el código

carpeta = new File (".")

hace carpeta consulte el directorio llamado 16-06.

Probablemente esté pensando: “El directorio raíz del proyecto, 16-06, es una carpeta, no un archivo. Pero el código dice carpeta = new File ( “”). ¿Por qué no decir el código = carpeta nueva carpeta ( “”)?

Resulta que la mayoría de los sistemas operativos desdibujan las diferencias entre carpetas y archivos. Para los propósitos de Java, el documento IHateTxtFiles.java es un archivo, la carpeta denominada src es también un tipo de un archivo y la carpeta con el nombre 16-06 es también un tipo de un archivo.

En Java, cada Archivo objeto tiene una listFiles método, y cuando se llama folder.listFiles (), se obtiene una matriz. Cada “valor” almacenado en la matriz es uno de los archivos de la folder.

para (TypeName variableName : Rango de valores) {declaraciones}

los Rango de valores es una matriz. La matriz contiene todos los archivos dentro de la 16-06 directorio del proyecto. Por lo que la mayor para bucle de toma cada archivo dentro de la 16-06 directorio y le pregunta “¿Termina el nombre de este archivo con .TXT?”

si (file.getName (). endsWith (".TXT"))

Si el nombre de un archivo en particular termina con .TXT, eliminar ese archivo:

File.delete () -

Antes de ejecutar este ejemplo, el 16-06 directorio contiene cosas nombradas src, aFile.txt, Sálvame, y xFile.txt.

Después de ejecutar este ejemplo, el 16-06 directorio contiene todavía src y Sálvame, pero ya no contiene aFile.txt o xFile.txt.

Después de ejecutar este programa, puede que no vea ningún cambio en Eclipse del Explorador de paquetes. Para verificar que el directorio del proyecto ya no contiene .TXT archivos, seleccionar el 16-06 sucursal en el Explorador de paquetes. Luego, en el menú principal de Eclipse, haga clic en Archivo → Actualizar.

Eclipse del Explorador de paquetes parece que se está mostrando todos los archivos y carpetas en una parte de su disco duro. Pero las apariencias pueden ser engañosas. Algunas de las ramas del Explorador de paquetes representan carpetas ni archivos. Y algunos de los archivos y carpetas de su disco duro no aparecen en Eclipse del Explorador de paquetes.

Además de cosas como src, que aparece en Eclipse del Explorador de paquetes, la carpeta de un proyecto normalmente contiene archivos con el nombre .ruta de clases y .proyecto, y carpetas con el nombre .ajustes y compartimiento. Estos archivos y carpetas adicionales no se muestran normalmente en Eclipse del Explorador de paquetes.

Cuando usted llama folder.listFiles (), la matriz resultante no incluye ninguna de las cosas en subdirectorios del carpeta directorio.

Artículos Relacionados