celph_titled
Erfahrenes Mitglied
Hallo zusammen,
vielleicht hat jemand eine Idee hierzu:
Ich hab mir ein Programm gebastelt, dass mir quasi ein Backup eines Verzeichnisses erstellt, aber nicht komprimiert sondern eine genaue Kopie. Da sich im Quellverzeichnis immer nur wenig verändert will ich nicht bei jedem Durchlauf alles neu rüberkopieren sondern nur das was sich verändert hat, also praktisch ein inkrementelles Backup. Wenn eine Datei sowohl im Quell- als auch im Zielverzeichnis vorhanden ist muss ich die ja vergleichen. Dazu hab ich die CRC-Checksumme aus java.util.zip eingebaut, aber bei 9 GB in ungefähr 2000 Dateien dauert das schon ne Weile. Ich weiß nicht ob das die optimale Lösung ist
Die Funktion wird jeweils für die Quell- und die Zieldatei aufgerufen. Die Dateien sind so zwischen 600kB und 5MB groß.
Gibt es ne Möglichkeit das zu beschleunigen? Die Puffergröße zu ändern bringt leider kaum was. Die Adler-Checksumme soll ja schneller sein, aber auch unzuverlässig. Ist das so oder kann ich die schon benutzen?
Oder weiß jemand sonst eine Möglichkeit die Dateien schneller zu vergleichen?
Danke im Voraus
vielleicht hat jemand eine Idee hierzu:
Ich hab mir ein Programm gebastelt, dass mir quasi ein Backup eines Verzeichnisses erstellt, aber nicht komprimiert sondern eine genaue Kopie. Da sich im Quellverzeichnis immer nur wenig verändert will ich nicht bei jedem Durchlauf alles neu rüberkopieren sondern nur das was sich verändert hat, also praktisch ein inkrementelles Backup. Wenn eine Datei sowohl im Quell- als auch im Zielverzeichnis vorhanden ist muss ich die ja vergleichen. Dazu hab ich die CRC-Checksumme aus java.util.zip eingebaut, aber bei 9 GB in ungefähr 2000 Dateien dauert das schon ne Weile. Ich weiß nicht ob das die optimale Lösung ist
Code:
private long getChecksum(File f) {
try {
CRC32 c = new CRC32();
byte b[] = new byte[1024];
FileInputStream in = new FileInputStream(f);
int len = 0;
while((len=in.read(b))>=0) {
c.update(b,0,len);
}
in.close();
return c.getValue();
}
catch(Exception e) {
return -1;
}
}
Gibt es ne Möglichkeit das zu beschleunigen? Die Puffergröße zu ändern bringt leider kaum was. Die Adler-Checksumme soll ja schneller sein, aber auch unzuverlässig. Ist das so oder kann ich die schon benutzen?
Oder weiß jemand sonst eine Möglichkeit die Dateien schneller zu vergleichen?
Danke im Voraus