Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Windows7 built-in Zip nutzen (https://www.delphipraxis.net/176442-windows7-built-zip-nutzen.html)

Luckie 6. Sep 2013 14:10

AW: Windows7 built-in Zip nutzen
 
Die NTFS Komprimierung ist nicht gleichzusetzen mit einem Zip-Archiv. Das sind zwei unterschiedliche Paar Schuhe. Die NTFS Komprimierung existiert nur auf dem lokalen Computer und im Dateisystem dieses Computers. Wird eine so komprimierte Datei weitergegeben, wird sie natürlich unkomprimiert weitergegeben. Auch sind natürlich Archive mit mehrere Dateien und einer Ordnerstruktur nicht möglich.

Das Systemprogramms compact.exe ermöglicht nur eine manuelle NTFS Komprimierung, wenn ich die Hilfe dazu richtig deute.

Ob das Nutzen der undokumentierten Funktionen in zipfldr.dll so sinnvoll ist bleibt zu diskutieren. Aber eigentlich braucht man doch nur Code zum Erstellen von Archiven. Und da gibt es ja diverse Zip kompatible Bibliotheken.

mkinzler 6. Sep 2013 14:32

AW: Windows7 built-in Zip nutzen
 
Zitat:

Ob das Nutzen der undokumentierten Funktionen in zipfldr.dll so sinnvoll ist bleibt zu diskutieren
Warum ist doch toll, wenn z.B. nach einem Windowsupdate das Telefon nicht mehr still steht ;)

hathor 6. Sep 2013 15:17

AW: Windows7 built-in Zip nutzen
 
Die Anwendung ist doch ganz einfach:
Man erstellt einen Ordner,
mit COMPACT /C wird der Ordner als "komprimiert" markiert.
Alles, was jetzt in den Ordner kopiert wird, wird automatisch komprimiert.

Directories will be marked so that files added afterward will be compressed.

Beispiel:
F:\
mdir CTEST
compact F:\CTEST /C
Die Schriftfarbe des Ordners ändert sich von schwarz nach blau.

Bbommel 6. Sep 2013 16:25

AW: Windows7 built-in Zip nutzen
 
Zitat:

Zitat von VkPenguin (Beitrag 1227307)
Danke @Bommel.. Das hört sich eigentlich gut an, habe auch mal etwas mit deinem Code experimentiert, nur komme ich damit nicht so ganz klar. Hast Du davon eine Demo/ein Beispiel?

Sorry, dass ich erst so spät antworte. So sieht das zum Beispiel aus, wenn die im von mir verlinkten Thread vorgestellte ShellZip-Unit mit der dort umgesetzten Klasse TShellZip benutzt wird (mit den von mir dort geposteten Änderungen):

Delphi-Quellcode:
var [...]
  shellZip: TShellZip;

begin
  [...]
  shellZip:=TShellZip.Create;
  shellZip.Zipfile:=aZipFilename;

  // erstmal die Konfig sichern
  if fileExists(aConfigFilename) then begin
    shellZip.Filter:=ExtractFileName(aConfigFilename);
    try
      shellZip.ZipFolder(ExtractFileDir(aConfigFilename),10);
    except
      on e: exception do begin
        Result:=e.Message;
        success:=false;
      end;
    end;
  end;
[...]
In dem Beispiel wird jetzt eine einzige Datei in die Zip-Datei geschrieben (nämlich eine Konfig-Datei, tut aber eigentlich nichts zur Sache). Man gibt im Befehl "ZipFolder" also an, dass man jetzt ein Verzeichnis komprimieren will. Will man aber in Wahrheit gar nicht das ganze Verzeichnis komprimieren, sondern, wie hier im Beispiel, doch nur eine einzelne Datei, so kann man diesen Dateinamen eben vorher im "Filter" setzen. Darüber kann man dann natürlich auch mit Wildcards arbeiten.

Ich hoffe, das hilft dir erstmal weiter. Sollten noch Rückfragen sein, bitte nicht wundern, falls ich erstmal nicht antworte, da ich in den nächsten Tagen wahrscheinlich nicht am Rechner bin.

Bis denn
Bommel

Luckie 7. Sep 2013 22:08

AW: Windows7 built-in Zip nutzen
 
Zitat:

Zitat von hathor (Beitrag 1227446)
Die Anwendung ist doch ganz einfach:
Man erstellt einen Ordner,
mit COMPACT /C wird der Ordner als "komprimiert" markiert.
Alles, was jetzt in den Ordner kopiert wird, wird automatisch komprimiert.

Noch mal. Compact ist die NTFS Dateisystemkompromierung. Damit kann man KEINE Archive erstellen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:54 Uhr.
Seite 2 von 2     12   

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