📜  public boolean find(String path, String pattern) (1)

📅  最后修改于: 2023-12-03 15:33:48.753000             🧑  作者: Mango

public boolean find(String path, String pattern)

该方法是一个公共方法,返回一个布尔值,用于在给定路径下搜索与指定模式匹配的文件或文件夹。

参数

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 结尾的文件。如果找到匹配项,则打印“文件已找到”,否则打印“文件未找到”。