比较 java 中的文件列表
Compare a List of files in java
我正在尝试实现一个 JavaFx 应用程序,其中比较 mp4 的文件名和 png 的文件名,如果它们相等或一个包含另一个,则现在有一个系统输出。
到目前为止,我正在使用两个循环遍历文件列表并检索这两个文件,但有一个问题:我拥有的 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 循环中使用另一个条件,检查第二个文件名是否包含第一个文件名。
我正在尝试实现一个 JavaFx 应用程序,其中比较 mp4 的文件名和 png 的文件名,如果它们相等或一个包含另一个,则现在有一个系统输出。
到目前为止,我正在使用两个循环遍历文件列表并检索这两个文件,但有一个问题:我拥有的 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 循环中使用另一个条件,检查第二个文件名是否包含第一个文件名。