比较java中的文件列表

比较java中的文件列表,java,oop,javafx,Java,Oop,Javafx,我正在尝试实现一个JavaFx应用程序,其中比较mp4的文件名和png的文件名,如果它们相等或一个包含另一个,那么现在就有一个sysout 到目前为止,我使用两个循环遍历文件列表,并检索两个文件,但有一个问题:我的PNG比MP4多,这就是为什么我得到ArrayOutOfBounds异常。我真的找不到解决这个问题的办法。问题在于最后的if语句 public void videoLoop() { File videoDirectory = new File("C:\\Users\\

我正在尝试实现一个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");
    }
}
public void videoLoop(){
File videoDirectory=新文件(“C:\\Users\\Hasan\\OneDrive\\Desktop\\Smart-Moniesta\\Smart-Moniesta-Raspberry-Pi\\src\\resources\\videos”);
File[]listOfFiles=videoDirectory.listFiles();
File imgDirectory=新文件(“C:\\Users\\Hasan\\OneDrive\\Desktop\\Smart-Moniesta\\Smart-Moniesta-Raspberry-Pi\\src\\resources\\images”);
文件[]imglistofiles=imgDirectory.listFiles();
int i=0;
int j=0;

对于(i=0;i您需要将第二个for循环嵌套在第一个循环中。最后一个if条件应该嵌套在内部for循环中


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

在最后一个
if
条件中,您在哪里取
i
j
的值。它取
i
j
的最后一个值,因此
ArrayOutOfBounds
噢,现在我明白了d、 我该如何做才能让它从头到尾进行比较?我想要实现的是,每当代码发现具有相同名称或包含部分名称的内容时,它都会呈现一个图像。您可以嵌套for循环并在那里进行比较,并给出某个数组何时被完全遍历的条件,这样您就不会得到
ArrayOutOfBounds
例外我知道这应该是一个评论,但我没有足够的代表com。