java - 在目录列表数组中查找字符串

标签 java netbeans

我从计算机上的文件夹中获取文件列表,并将其放入名为 listOfFiles 的数组中。

我想尝试使用字符串在文件夹中查找文件名。

  • 如果它确实找到了文件,我需要它说“匹配”
  • 如果找不到该文件(现在正在发生),则会显示“不匹配”

我的代码目前一直说它“不匹配”,即使我已经使用了我正在搜索的确切文件名。

代码:

File folder = new File(txtPDFLocation.getText());
File[] listOfFiles = folder.listFiles();

for (int i = 0; i < listOfFiles.length; i++) {
    if (listOfFiles[i].isFile()) {
        System.out.println(listOfFiles[i].getName());
    } 
    else if (listOfFiles[i].isDirectory()) {
        System.out.println("Directory " + listOfFiles[i].getName());
    }
}

//Try to match file to email address
if(Arrays.asList(listOfFiles).contains("Text1.txt")) {
    System.out.println("MATCH");
}
else {
    System.out.println("NOT MATCHED");
}

控制台:

Text1.txt
NOT MATCHED

最佳答案

您必须手动循环它。

您可以创建新的 for 循环,甚至可以在现有循环中检查它。

这是工作示例:

File folder = new File("");
File[] listOfFiles = folder.listFiles();

boolean isItThere = false;
for (File file : listOfFiles) {
    if (file.isFile()) {
        if (file.getName().equals("Text1.txt")) {
            isItThere = true;
        }
        System.out.println(file.getName());
    } else if (file.isDirectory()) {
        System.out.println("Directory " + file.getName());
    }
}

//Try to match file to email address

if (isItThere) {
    System.out.println("MATCH");
} else {
    System.out.println("NOT MATCHED");
}

关于java - 在目录列表数组中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22649351/

相关文章:

java - 当通过 Jar 文件执行时,启动屏幕不显示,但当从 Netbeans IDE 执行时,启动屏幕可以工作

java - ExceptionInInitializerError - 类未编译

java - GAE+JDO+JAVA+CRUD

java - 使用 compareTo 对对象进行排序(多种类型)

java - 不同机器之间的套接字通信

java - 使用 JUnit 测试 void 方法

java - Eclipse 中的依赖包(jar 文件/源/API 文档)

C++:NetBeans 在创建 header 时生成的一些行代码

Java 嵌套 while 循环

Java 8 : Compare multiple attributes in two lists