Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk (https://www.delphipraxis.net/33345-abbrevia-zip-entpackt-nicht-vollstaendig-netzlaufwerk.html)

Martoeng 5. Nov 2004 13:32


Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
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

trifid 5. Nov 2004 14:59

Re: Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
a) welche Klasse ist die zip1?
b) hast du mal die Beispiele durchprobiert die mit dabei sind?
c) beim Auspacken greift kein anderes System gleichzeitig auf das Verzeichnis bzw. auf die Dateien?

Martoeng 8. Nov 2004 06:05

Re: Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
Guten Morgen,

also,
a) zip1 ist ein Objekt der Klasse TAbUnZipper
b) nee, habe ich noch nicht, werds aber mal checken
c) beim Entpacken greift kein anderes Programm auf die Daten zu (erst anschliessend werden diese Dateien in mein Programm eingelesen


MfG & Thx

Martoeng

Martoeng 8. Nov 2004 06:13

Re: Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
kurzer Nachtrag:

zu b) Habe mal das Beispielprogramm zum entpacken ausprobiert und das legt genau das gleiche Verhalten an den Tag. Also auf Netzlaufwerken werden auch hier die Dateien auf 32 kB "kastriert".


MfG

Martoeng

Duffy 8. Nov 2004 06:13

Re: Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
Hallo Martoeng,
was passiert mit "mkdir" auf einem Netzlaufwerk, wenn das Verzeichnis existiert? Vielleicht ist das der Fehler, da versucht wird es jedesmal zu erstellen.

bye
Claus

Martoeng 8. Nov 2004 06:43

Re: Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
Hi Duffy,

das ist leider nicht der Fehler -> aber danke für den Hinweis, muss ich noch beachten...
Ich habe eben noch ein bisschen mit dem Beispielprogramm rumgespielt und noch ein paar interessante, aber mir unerklärliche Entdeckungen gemacht:

Ich habe das Entpacken jetzt mal mit einem Archiv versucht, das ein 668kB-JPEG enthält. Diese Datei ist nach dem Entpacken exakt 557.056 Byte (= 544 kB) groß. Beim Vergleich mit dem Original fällt auf, das am Unteren Ende des Bildes ein gutes Stück fehlt. Beim Öffnen mit Photoshop wird auch eine Fehlermeldung angezeigt, die meint, das die Datei "beschädigt oder abgeschnitten" ist.

Also habe ich noch einen Versuch gemacht: ein 826.530 Byte (~807 kB) großes dbf-File wird ebenfalls auf exakt 544 kB abgeschnitten.

Und Nr. 3: 134.160.384-Byte (~ 128MB) - mdb-Datei wird auf 133.726.208 Byte (~127,5 MB) abgeschnitten, lässt sich aber ohne weiteres Öffnen...

Diese Fehler passieren ALLE nur auf Netzlaufwerken (lokal klappt alles super) und mit dem Beispielprogramm von Abbrevia ebenso wie mit meinem Eigenen.


Weiss jemand Rat oder hatte schon dieses Problem?


MfG

Martoeng

Martoeng 8. Nov 2004 07:50

Re: Abbrevia-ZIP entpackt nicht vollständig in Netzlaufwerk
 
So, hab die Schnauze voll :twisted:

Hab mir jetzt ZipMaster installiert und es klappt auf Anhieb.

Damit wandert die Abbrevia-Komponente im hohen Bogen in den Müll! :twisted: :evil:


Also lasst euch gesagt sein: Abbrevia-Zip hat Probleme mit Netzlaufwerken...


Einen ruhigen Montag euch allen

MfG

Martoeng


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz