Ich habe einen Ordner mit dieser Struktur
mainFolder
--Sub1
--Datei .scl
--Datei .awl
--Andere Dateien
--Sub2
--Dateien
--Sub3
--Sub4
Ich möchte es an einen anderen Ort kopieren, aber ich möchte vermeiden, dass Sub3 und (je nach Situation) einige Dateien aus Sub1 kopiert werden
Hier ist ein Auszug aus dem bisherigen Vorgehen:
FileUtils.copyDirectory(srcDir, dstDir, new FileFilter() {
public boolean accept(File pathname) {
// Wir möchten den Ordner 'Sub3' nicht importieren
// + Überprüfen der Einstellungen, um zu entscheiden, ob ein bestimmtes Format ausgeschlossen werden muss
String[] ignoreList= new String[]{
!Settings.getSiemensOptionAWL() ? ".awl":"uselessStringWilNeverBeFound",
!Settings.getSiemensOptionSCL() ? ".scl":"uselessStringWilNeverBeFound",
"Sub3"
};
return !(ignoreFile(pathname, ignoreList) && pathname
.isDirectory());
}
}, true);
public static boolean ignoreFile(File file, String[] ignoreList) {
for (final String ignoreStr : ignoreList)
if (file.getAbsolutePath().contains(ignoreStr))
return true;
return false;
}
Anscheinend funktioniert es. Aber ich denke, dass es eine sehr hässliche Lösung ist.... Kennt jemand einen besseren Weg?
P.S: natürlich ist Settings.getSiemensOptionAWL() einfach eine boolesche Funktion, die meine Entscheidung zurückgibt