繁体   English   中英

比较java中的文件列表

[英]Compare a List of files in java

我正在尝试实现一个 JavaFx 应用程序,其中比较 mp4 的文件名和 png 的文件名,如果它们相等或一个包含另一个,则现在有一个 sysout。

到目前为止,我正在使用两个循环来浏览文件列表,并且我正在检索这两个文件,但是有一个问题:我的 png 比 mp4 多,这就是为什么我收到 ArrayOutOfBounds 异常。 我真的找不到解决方法。 问题在于最后的 if 语句。

public void videoLoop() {
    File videoDirectory = new File("C:\\Users\\Hasan\\OneDrive\\Desktop\\Smart-Moniesta\\Smart-Moniesta-Raspberry-Pi\\src\\ressources\\videos");
    File[] listOfFiles = videoDirectory.listFiles();
    File imgDirectory = new File("C:\\Users\\Hasan\\OneDrive\\Desktop\\Smart-Moniesta\\Smart-Moniesta-Raspberry-Pi\\src\\ressources\\images");
    File[] imglistOfFiles = imgDirectory.listFiles();

    int i = 0;
    int j = 0;

    for (i = 0; i <= listOfFiles.length - 1; i++) {
        if (listOfFiles[i].isFile()) {
            System.out.println("File aus der i Schleife " + listOfFiles[i].getName());
        }
    }
    for (j = 0; j <= imglistOfFiles.length - 1; j++) {
        if (imglistOfFiles[j].isFile()) {
            System.out.println("File Bilder aus der j Schleife: " + imglistOfFiles[j].getName());
        }
    }
    if (listOfFiles[i].getName().contains(imglistOfFiles[j].getName())) {
        System.out.println("Vergleich klappt" + listOfFiles[i].getName());
    } else {
        System.out.println("KLappt nicht");
    }
}

您需要将第二个 for 循环嵌套在第一个循环中。 并且您的最后一个 if 条件应该在内部 for 循环内。

您还需要在 for 循环中使用另一个条件来检查第二个文件名是否包含第一个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM