📅  最后修改于: 2023-12-03 15:33:48.753000             🧑  作者: Mango
该方法是一个公共方法,返回一个布尔值,用于在给定路径下搜索与指定模式匹配的文件或文件夹。
path - 要搜索的路径
pattern - 要匹配的模式,可以使用通配符(例如:*、?)
该方法返回一个布尔值,如果在指定路径下找到与给定模式匹配的文件或文件夹,则返回true,否则返回false。
下面是该方法的代码示例:
public boolean find(String path, String pattern) {
File directory = new File(path);
if (!directory.exists()) {
return false;
}
File[] files = directory.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
if (find(file.getAbsolutePath(), pattern)) {
return true;
}
} else {
String name = file.getName();
if (name.matches(pattern)) {
return true;
}
}
}
}
return false;
}
该方法首先使用给定的路径创建一个文件对象(directory),并检查该文件是否存在。如果文件不存在,则该方法会立即返回false。
如果文件存在,该方法将获取该路径下的所有文件和文件夹(files),并遍历它们。对于每个文件夹,该方法将以递归方式调用自身,直到找到与指定模式匹配的文件或文件夹。对于每个文件,该方法将检查文件名是否与指定模式匹配。如果找到匹配项,则返回true。如果没有找到匹配项,则该方法将继续搜索下一个文件或文件夹,直到遍历完所有文件和文件夹。
最后,如果在整个路径下都没有找到匹配项,则该方法返回false。
您可以使用以下示例代码调用该方法:
String path = "/path/to/search";
String pattern = ".*\\.txt"; // 搜索所有以 .txt 结尾的文件
boolean result = find(path, pattern);
if (result) {
System.out.println("文件已找到");
} else {
System.out.println("文件未找到");
}
在这个例子中,我们搜索路径 /path/to/search 下所有以 .txt 结尾的文件。如果找到匹配项,则打印“文件已找到”,否则打印“文件未找到”。