AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Ordnerstruktur im ZipFile

Ein Thema von Moony · begonnen am 21. Jan 2009 · letzter Beitrag vom 21. Jan 2009
Antwort Antwort
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#1

Ordnerstruktur im ZipFile

  Alt 21. Jan 2009, 08:50
Hallo zusammen,

ich habe folgendes Anliegen:

Mit meiner bestehenden Applikation erstelle ich von verschiedenen Verzeichnissen ein ZipFile mit TZipmaster. Dies geschieht folgendermaßen:

Delphi-Quellcode:
  cz := TZipMaster.Create(nil);
  cz.ZipFilename := MyZipFileName;
  if not DirectoryExists(Exportdir.Caption) then // Ausgabeverzeichnis für das Zip-File
    ForceDirectories(Exportdir.Caption);
  cz.AddOptions := [AddRecurseDirs, AddDirNames, AddSeparateDirs];
  cz.FSpecArgs.Add(ChangeFileExt(ImageDir.Caption, '*.*'));
  ...
  ...
  cz.Add;

  while cz.ZipBusy do
    Application.ProcessMessages;

  cz.Free;
So, das funktioniert ja alles richtig, aber es wird die komplette Verzeichnisstruktur entnommen die ich mit der Datei angebe.
Bsp.: D:\Test\MeineBilder\*.*
dann ist im Zipfile folgende Struktur: Test\MeineBilder\*.*

Hier liegt mein Problem! Ich möchte eine eigene Verzeichnisstruktur im Zip-File definieren und lediglich die Dateien kopieren.

Bsp.: D:\Test\MeineBilder\*.* -> alle Dateien aus dem MeineBilder sollen entnommen werden
im Zipfile soll die Struktur z.B. so aussehen: Kunde\Backup\Bilder\*.*


Ich hoffe die Erläuterungen sind soweit verständlich.

Danke im Voraus & Gruß, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
aayb

Registriert seit: 9. Jan 2008
14 Beiträge
 
#2

Re: Ordnerstruktur im ZipFile

  Alt 21. Jan 2009, 09:30
Hi,

ich denke, "RootDir" ist das, was du suchst.

Aus der Help:
Zitat:
property RootDir: String;

Description:

The RootDir property determines where zipping will start for any filenames or wildcard entries in the FSpecArgs property.


Example:
ZipMaster1.RootDir := 'D:\Program Files\Start';
ZipMaster1.FSpecArgs.Add( 'Dir1\MyFile.html' );
ZipMaster1.FSpecArgs.Add( '*.h' );
ZipMaster1.Add;

This will add the file "D:\Program Files\Start\Dir1\MyFile.htm" as "Dir1\MyFile.html"
and all files "D:\Program Files\Start\*.h" as "*.h" to the ziparchive.
gr.
aayb
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Ordnerstruktur im ZipFile

  Alt 21. Jan 2009, 09:34
Das kann ich ja nicht machen, weil ich sonst ständig das RootDir ändern müßte, da ich unterschiedliche Verzeichnisse verwende.
Das mit der übergeordneten Struktur habe ich bereits hinbekommen. D.h. dass ich lediglich die Dateien aus dem genannten Verzeichnis ins Zip-File kopiere: Bei AddOptions darf "AddDirNames" nicht mit angegeben werden.

Aber was mir noch fehlt ist eben die Struktur innerhalb des Zipfiles.
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Moony

Registriert seit: 29. Jul 2003
Ort: Essen
454 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Ordnerstruktur im ZipFile

  Alt 21. Jan 2009, 10:28
So, ich habe es nun geschafft die besch... Struktur zu ändern! Für alle die es interessiert:

1. Bei den AddOptions muß die Option "AddDirNames" eingetragen werden.
2. In dem Ereignis "OnSetNewName" vom TZipmaster kann dann in OldFileName die Struktur neu bestimmt werden:
D:\Test\MeineBilder\Bild.jpg -> hinzugefügte Datei
OldFileName := 'Kunde\Backup\Bilder\' + ExtractFileName(OldFileName);
3. Anschließend MUSS IsChanged auf True gesetzt werden.

E voila fertig ist die neue Struktur!

Gruß & Danke, Moony
Ich weiß, daß ich nichts weiß! Sokrates
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 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