Ich lese aus einer Datei eine Liste von Pfaden. Ich möchte sie in einer integrierten Java-Struktur speichern, die die Duplikate automatisch löschen kann. Durch Duplikate meine ich, wenn ich /usr/bin
habe und dann /usr
hinzufüge, muss der bin
Ordner gelöscht werden, da er im Ordner usr
"enthalten" ist. Ich lese die Datei sequenziell, damit ich nicht alle Daten zweimal überprüfen muss, wenn möglich.Von Datei des Pfades zu eindeutiger Datenstruktur
Beispielcode:
UnknownType<Path> database;
BufferedReader reader = new BufferedReader(new FileReader(new File("db.txt")));
String line;
while ((line = reader.readLine()) != null) {
Path path = Paths.get(line).toRealPath();
database.add(path);
}
Beispieldatei:
/usr/bin
/usr
/dev
/dev/sda1
/dev/sda2
/home/user/Desktop/file.txt
/home/user/Documents/file2.txt
/home/user/Documents/file3.txt
Erwartete Ausgabe:
data structure containing paths:
/usr
/dev
/home/user/Desktop/file.txt
/home/user/Documents/file2.txt
/home/user/Documents/file3.txt
Sie wollen also nur Top-Level-Ordner in Ihrer Datenstruktur? Streichen Sie nach dem zweiten Schrägstrich alles ab und speichern Sie die Daten in einem 'Set'. –
Kann Dateien auch sein und nicht nur auf der obersten Ebene Ordner, ich werde die Frage besser ändern –
Ich verstehe nicht ganz Ihre Anforderung. Meinst du, wenn der Pfad einer Datei entspricht, willst du sie so wie sie ist einfügen; Wenn der Pfad ein Ordner ist, schließen Sie nur die oberste Ebene ein. –