我正在用Java编写一个程序,它将几个文件夹的所有图片合并到一个文件夹中。程序本身工作得非常好,但是现在,我想在将图片合并到" overallfolder"之前检查,如果它已经在文件夹中。例如,如果图片同时位于两个或多个文件夹中,那么我就不会有重复文件。
如果文件名相同并不重要,我想证明图片本身是否相同。
我程序中的以下功能列出了一个文件夹中的所有文件和文件夹:
private void listSubFolders(String path) {
//System.out.println("Controll Folder: "+path); //DEBUG
ArrayList<String> localPicturePaths = new ArrayList<String>();
File[] files = new File(path).listFiles();
if(files != null) {
for(File file : files) {
if(file.isDirectory()) {
//System.out.println("Folder: "+file.getName()); //DEBUG
listSubFolders(file.getAbsolutePath());
} else if(file.isFile()) {
if(containsIgnoreCase(getFileExtension(file), fileTypes)) {
//System.out.println("File: "+file.getName()+" in Folder "+file.getParent()); //DEBUG
localPicturePaths.add(file.getAbsolutePath());
} else {
//System.out.println("Ignore File: "+file.getName()); //DEBUG
}
}
}
}
因此,有一个功能可以覆盖已经在文件夹中的所有图片。 我需要的是一个良好的工作功能来检查下一张图片,如果它已经在移动图片列表中。 我特别想找到一种有效的方法,它不会让节目的工作时间变慢。
你有什么想法吗?