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

En Java, es posible que desee 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 se ve así:

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

En ese código, el archivo nuevo convocatoria se refiere a un único archivo. Es muy bonito código, 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 maneras de lidiar con los manojos de archivos. Una forma utiliza una matriz de Archivo objetos.

IHateTxtFiles clase java.io.File importación {principales (String args []) void estáticos públicos {carpeta de archivos = new File (".") - para (del archivo: folder.listFiles ()) {if ((file.getName ) .endsWith ()) {File.delete () -} "txt."}}}

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

Por ejemplo, imagine que el código de arriba vive en un proyecto de Eclipse llamado 16-06. Luego, su 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 la 16-06 directorio. Así, el código

carpeta = new File (".")

hace carpeta consulte el directorio llamado 16-06.

imagen0.jpg

Probablemente esté pensando: " 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 una especie de un archivo.

En Java, cada Archivo objeto tiene un listFiles método, y cuando llame 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. Así que la mayor para bucle toma cada archivo dentro de la 16-06 directorio y pide " ¿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.

image1.jpg

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.

image2.jpg

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

Explorador de paquetes de Eclipse parece que 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 el Explorador de paquetes de Eclipse.

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

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




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