Hi,
um Dumps (Quasi-Sicherungen) einer
MySQL-
DB zu erstellen, habe ich mir ein kleines Programm geschrieben, dass alle Daten aus der
DB in Textdateien mit der Endung *.dat schreibt und diese anschliessend mit Abbrevia-ZIP packt.
Klappt wunderbar...
Natürlich sollen diese Dumps auch wieder aufgespielt werden können.
Also wieder entpacken und der ganze Spass "rückwärts".
Entpackt wird immer in den Ordner, in dem auch die Zip liegt.
Und genau beim Entpacken liegt das Problem:
Liegt die Zip-Datei auf einem lokalen Laufwerk entpackt er alle Dateien vollständig (momentan grösste Datei: ~430 kB)
Liegt diese Zip-Datei auf einem Netzlaufwerk werden von allen Dateien, die eine bestimmte Grösse erreicht haben (in diesem Fall sind das 3 Dateien mit 437 kB, 65 kB und 241 kB) nur die ersten 32.768 Byte
*edit: also exakt 32 kB*
(so groß sind dann die entpackten Dateien) entpackt.
Dateien, die kleiner sind, werden vollständig entpackt...
Hier mal mein SourceCode vom entpacken:
Delphi-Quellcode:
mkdir(form1.e_target.Text + form1.listbox1.Items.Strings[form1.listbox1.itemindex]);
//erstellt den Unterordner, in den entpackt wird
form1.zip1.BaseDirectory := form1.e_target.Text + form1.listbox1.Items.Strings[form1.listbox1.itemindex];
//Im Edit "e_target" steht der Quellordner
//listbox1 enthält dann eine Liste aller Zip-Dateien in diesem Ordner ohne Endung
// = Zielordnername
form1.zip1.TempDirectory := form1.zip1.BaseDirectory;
form1.zip1.FileName := form1.e_target.Text + form1.listbox1.Items.Strings[form1.listbox1.itemindex] + '.zip';
form1.zip1.ExtractFiles('*.*');
Was mich halt sehr wundert, ist, dass genau der gleiche Code, wenn in "e_target" eine lokale Quelle (=Ziel) eingegeben ist, alles komplett entpackt wird.
Nur bei Netzlaufwerken (im lokalen Netzwerk) klappt das nicht...
Bin ich auf einen Bug von Abbrevia gestoßen oder wo könnte sonst der Wurm drin stecken?
Weiss jemand Rat oder soll ich lieber mal eine andere Komponente ausprobieren?
MfG
Martoeng