基于扩展名查找/删除文件的 Java 程序
原文:https://www . geesforgeks . org/Java-program-to-find-delete-files-based-on-extensions/
我们可以在 Java 中使用 FilenameFilter 覆盖 accept(文件目录,字符串名称)方法来执行文件过滤操作。文件名界面有一个接受()的方法。它检查给定的文件是否应该包含在文件列表中。我们可以通过实现这个方法来检查传递的目录中的每个文件。如果文件具有所需的扩展名,则包含该文件,否则将被丢弃。
语法:
accept(File dir, String name)
现在接下来要做的是如何将文件包含在给定扩展名的列表中,为此有一个 File.list() 方法,该方法采用 FilenameFilter 实例。该列表返回一个字符串数组,命名由满足指定过滤器的抽象路径名表示的目录中的文件和目录。所以让我们详细讨论这个功能,以便在处理文件时更好地理解。
列表() 方法是文件类的一部分。函数返回一个字符串数组,表示给定抽象路径名中的文件,如果路径名是目录,则返回 null。该函数是一个重载函数。其中一个函数没有任何参数,另一个函数将 FilenameFilter 对象作为参数,如下所述
功能签名:
public String[] list()
public String[] list(FilenameFilter f)
函数语法:
file.list()
file.list(filter)
参数:函数是一个重载函数。其中一个函数没有任何参数,另一个函数以文件名称过滤器 对象为参数
返回值:函数返回字符串数组,如果文件对象是文件,则返回空值。
异常:如果不允许函数对文件进行写访问,这个方法抛出安全异常。
程序:
我们将遵循两个步骤来删除基于扩展名的文件:
- 实现 FileNameFilter 接口以列出具有给定扩展名的文件。
- 使用 delete() 方法迭代这些文件以将其删除。
示例:
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));
}
}
输出:
版权属于:月萌API www.moonapi.com,转载请注明出处