Я собираюсь сойти с ума по этому вопросу прямо здесь. Я бы хотел сравнить 4 файла друг с другом.
Они разделены на 2 папки. Итак, есть папка «А» с файлом 1-4
и есть папка "B", которая является копией папки "A".
package Aufgabe2;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
class FTWalker {
FTWalkerTWO two;
public static void main(String[] args) throws IOException {
new FTWalker().walk(args[0]);
}
void walk(String pathname) throws IOException {
File[] files = new File(pathname).listFiles();
List<Integer> list = new ArrayList<Integer>();
List<String> liste2 = new ArrayList<String>();
int i = 0;
if (files != null)
for (File file: files)
if (file.isDirectory())
walk(file.getCanonicalPath());
else{
// process(file.getCanonicalPath(), (int)file.length());
System.out.println(""+file.getName()); //gibt namen aus
list.add( (int) file.length());
liste2.add(file.getName());
i++;
duplikat(file,liste2);
}
// sortiert(list);
}
void process(String name, int length) {
System.out.printf("%-70s%9d%n", name, length);
}
void sortiert(List<Integer> a) {
Collections.sort(a);
for (int k = 0; k < a.size(); k++) {
System.out.print(a.get(k) + " ");
}
System.out.println("");
Comparator<Integer> comparator = Collections.<Integer> reverseOrder();
Collections.sort(a, comparator);
for (int k = 0; k < a.size(); k++) {
System.out.print(a.get(k) + " ");
}
}
public void duplikat(File file,List<String> a ){//stand vorher List<String> liste2 drin
//for(int i.)
if(file.getName().equals(a.get(i)){
System.out.println("Yo\n");
}else{
System.out.println("Sorry seems to be the hardest word\n");
}
}
}
Приведенный выше код получает папку на args[0]
, проходит по каталогу, который содержит пару файлов, и печатает весь путь + размер файла.
Все, что я хочу, это посмотреть, равны ли имена файлов!
Я получил z.txt в обеих папках - они равны (имя). Затем я изменил один из них на z2.txt. Теперь я проверил, оба имеют одинаковое имя или нет. Но я не получаю правильный результат.