Podemos usar FilenameFilter en Java para anular el método accept(File dir, String name) para ejecutar la operación de filtrado de archivos. La interfaz de nombre de archivo tiene un método accept(). Comprueba si un archivo determinado debe incluirse en una lista de archivos. Podemos verificar cada archivo en el directorio pasado implementando este método. Si el archivo tiene la extensión requerida, se incluye, de lo contrario se descarta.
Sintaxis:
accept(File dir, String name)
Ahora, lo siguiente que entra en juego es cómo incluir los archivos en una lista con la extensión dada, para eso hay un método File.list() que toma la instancia de FilenameFilter. la lista Devuelve una array de strings que nombran los archivos y directorios en el directorio indicado por este nombre de ruta abstracto que satisface el filtro especificado. Entonces, analicemos esta función en detalle para obtener una mejor comprensión al manejar los archivos.
El método list() es parte de la clase File . La función devuelve una array de la string que denota los archivos en un nombre de ruta abstracto dado si el nombre de ruta es un directorio; de lo contrario, devuelve nulo. La función es una función sobrecargada. Una de las funciones no tiene ningún parámetro y la otra función toma el objeto FilenameFilter como parámetro, como se describe a continuación.
Firma de función:
public String[] list() public String[] list(FilenameFilter f)
Sintaxis de la función:
file.list() file.list(filter)
Parámetros: La función es una función sobrecargada. Una de las funciones no tiene ningún parámetro y la otra función toma el objeto FilenameFilter como parámetro
Valor devuelto: la función devuelve una array de strings o un valor nulo si el objeto de archivo es un archivo.
Excepción: este método arroja una excepción de seguridad si la función no tiene acceso de escritura al archivo.
Procedimiento:
Seguiremos dos pasos para eliminar archivos en base a extensiones:
- Implemente la interfaz FileNameFilter para listar archivos con la extensión dada.
- Recorre esos archivos para eliminarlos usando el método delete() .
Ejemplo:
Java
// Java Program to find/delete files based on extensions // Importing input output classes import java.io.*; // Class 1 // Main class // To check for a file class GFG { // Member variables of this class // File directory private static final String FILE_DIRECTORY = "/Users/mayanksolanki/Desktop/"; // File extension private static final String FILE_EXTENSION = ".jpeg"; // Method of this class public void deleteFile(String folder, String extension) { // Creating filter with given extension by // creating an object of FileExtFilter FileExtFilter filter = new FileExtFilter(extension); // Now, creating an object of FIle class File direction = new File(folder); // Cresting an array if strings to // list out all the file name // using the list() with .txt extension String[] list = direction.list(filter); // Iterating over the array of strings // using basic length() method for (int i = 0; i < list.length; i++) { // printing the elements System.out.println(list[i]); } // Base condition check when array of strinfg is // empty Then simply return if (list.length == 0) return; File fileDelete; // Now looking for the file in the for (String file : list) { String temp = new StringBuffer(FILE_DIRECTORY) .append(File.separator) .append(file) .toString(); // Storing the file fileDelete = new File(temp); // Checking whether the file is deleted boolean isdeleted = fileDelete.delete(); // Print true if file is deleted System.out.println("file : " + temp + " is deleted : " + isdeleted); } } // Method 2 // Main driver method public static void main(String args[]) { // Calling the deleteFile() method over the file // FileCheker() method to check existence for the // file // Delete the file with FILE_EXTENSION from // FILE_DIRECTORY using the deleteFile() method s // created above new GFG().deleteFile(FILE_DIRECTORY, FILE_EXTENSION); } } // Class 2 // Helper class // Which in itself is implementing FilenameFilter Interface class FileExtFilter implements FilenameFilter { // Extension private String extension; // Comparator public FileExtFilter(String extension) { // This keyword refers to current object itself this.extension = extension; } public boolean accept(File directory, String name) { // Returning the file name along with the file // extension type return (name.endsWith(extension)); } }
Producción:
Publicación traducida automáticamente
Artículo escrito por KapilChhipa y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA