AGB  ·  Datenschutz  ·  Impressum  







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

Abbrevia + Folders

Ein Thema von japetos · begonnen am 26. Sep 2005 · letzter Beitrag vom 27. Sep 2005
Antwort Antwort
Seite 1 von 2  1 2      
japetos

Registriert seit: 30. Aug 2005
Ort: Montreal
58 Beiträge
 
#1

Abbrevia + Folders

  Alt 26. Sep 2005, 18:38
Wie bekomme ich es hin dass mir das Teil auch ganze Ordner zippt?

So sieht mein Code bisher aus:
Delphi-Quellcode:
         begin
          try
              AbZipper1.BaseDirectory := ExtractFilePath(FileName);
              AbZipper1.FileName := s;
              abZipper1.OpenArchive(s);
              AbZipper1.AddFiles(ExtractFileName(FileName), 0);
              AbZipper1.Save;
              AbZipper1.CloseArchive;
              ShowMessage(ExtractFileName(FileName) + ' zipped');
          except
          on E: Exception do
          ShowMessage('NO: ' + E.Message);
        end;
     end;
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#2

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 18:42
Hallo japetos,

schau mal die Komponente hat
unter StoreOptions ein Element, diese auf soRecurse = True setzen oder
AbZipper1.StoreOptions := [soStripDrive,soRemoveDots,soRecurse]
  Mit Zitat antworten Zitat
japetos

Registriert seit: 30. Aug 2005
Ort: Montreal
58 Beiträge
 
#3

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 18:54
1. in den Optionen hab ich das schon gemacht.
2. wenn ich dann soRecurse := true setze wird zwar das zip-file erstellt, allerding ohne jeglichen Inhalt.
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#4

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 20:15
Hallo japetos,
probiers mal damit

Delphi-Quellcode:
   
   try
      AbZipper1.BaseDirectory := 'C:\mypath\';
      AbZipper1.FileName := 'my.zip';
      AbZipper1.StoreOptions := [soStripDrive, soRemoveDots, soRecurse];
      AbZipper1.AddFiles('*.*', faReadOnly + faDirectory + faArchive + faAnyFile);
      AbZipper1.Save;
      AbZipper1.CloseArchive;

      ShowMessage('zipped');
   except
      on E: Exception do ShowMessage('NO: ' + E.Message);
   end;
geht natürlich auch mit
AbZipper1.AddFiles('*.*', 0);
  Mit Zitat antworten Zitat
japetos

Registriert seit: 30. Aug 2005
Ort: Montreal
58 Beiträge
 
#5

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 20:40
bei: AbZipper1.StoreOptions := [soStripDrive, soRemoveDots, soRecurse]; kommt die Fehlermeldung: undeclared Identifier

bei: AbZipper1.AddFiles('*.*', faReadOnly + faDirectory + faArchive + faAnyFile); kommt die Fehlermeldung: Incompatible Types

und wenn ich AbZipper1.AddFiles('*.*', 0); eingebe, dann zippt er mir alles was auf dem Desktop ist
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#6

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 21:05
Zitat:
kommt die Fehlermeldung: undeclared Identifier
verstehe ich nicht

Zitat:
kommt die Fehlermeldung: Incompatible Types
bei mir nicht reproduzierbar

Welche Version verwendest du ?
bist du mal mit dem Debugger durch, die sourcen sind ja mit dabei

Zitat:
AbZipper1.AddFiles('*.*', 0);
wenn der Desktop gezipt wird, dann simmt das BaseDirectory nicht

Ich bekomme bei diesem code keinen Fehler !
sonst hätte ich ihn ja nicht gepostet
Delphi-Quellcode:
   try
      AbZipper1.BaseDirectory := 'C:\mypath\';
      AbZipper1.FileName := 'my.zip';
      AbZipper1.StoreOptions := [soStripDrive, soRemoveDots, soRecurse];
      AbZipper1.AddFiles('*.*', 0);
      AbZipper1.Save;
      AbZipper1.CloseArchive;

      ShowMessage('zipped');
   except
      on E: Exception do ShowMessage('NO: ' + E.Message);
   end
und diese Variante geht auch
Delphi-Quellcode:
   try
      AbZipper1.BaseDirectory := 'C:\mypath\';
      AbZipper1.FileName := 'my.zip';
      AbZipper1.AddFiles('*.*', 0);
      AbZipper1.Save;
      AbZipper1.CloseArchive;

      ShowMessage('zipped');
   except
      on E: Exception do ShowMessage('NO: ' + E.Message);
   end
und die Komponente ist so im dfm-file beschrieben
Delphi-Quellcode:
  object AbZipper1: TAbZipper
    AutoSave = True
    DOSMode = False
    StoreOptions = [soStripDrive, soRemoveDots, soRecurse]
    Left = 120
    Top = 72
  end
versuche zuerst über einen statischen Pfad eine Lösung zu finden,
wenn es dann funktioniert kannst du immer noch ExtractFilePath(FileName) verwenden
  Mit Zitat antworten Zitat
japetos

Registriert seit: 30. Aug 2005
Ort: Montreal
58 Beiträge
 
#7

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 21:19
nope.

hab jetzt beides ausprobiert.
beim ersten erstellt er zwar das ZIP aber ohne Inhalt

und bei zweiten zippt es alles was sich auf dem Desktop befindet.
Total bescheuert.

  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#8

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 21:37
Zitat:
hab jetzt beides ausprobiert.
wie hast du es ausprobiert mit C:\mypath ?
welche Version von Abbrevia verwendest du ?
aus welchen Pfad wird die Applikation gestartet - überprüfe das ?
Zitat:
beim ersten erstellt er zwar das ZIP aber ohne Inhalt
ich weiss nicht ob du die auch die Änderungen von der dfm vorgenommen hast

geh mal mit dem Debugger durch und schaue was er
bei AbZipper1.BaseDirectory zuordnet ?
später in AbZipper1.AddFiles('*.*', 0);
welchen Pfad verwendet er und warum diesen ?
Wie wird die FindFirst und FindNext in Abbrevia aufgerufen und abgearbeitet ?

manchmal stelle ich Fragen, damit diese auch beantwortet werden, falls es zu einer Rückantwort kommt
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 21:38
Moin japetos,

dass hier:

faReadOnly + faDirectory + faArchive + faAnyFile ist falsch.
Solche Flags solltest Du nur mit or verknüpfen.
Code:
faReadOnly =  1 => binär 00000001
faDirectory = 16 => binär 00010000
faArchive  = 32 => binär 00100000
faAnyFile  = 63 => binär 00111111
===================================
Summe      = 112 => binär 01110000
===================================
OR         = 63 => binär 00111111
===================================
Der Funktion wird als der Wert 112 übergeben, was aufgeschlüsselt nach Flagwerten
faDirectory or faArchive or faSymLink bedeutet.
Mit OR verknüpft wäre es hingegen faAnyFile, was
faReadOnly or faHidden or faSysFile or faVolumeID or faDirectory or faArchive entspricht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von trifid
trifid

Registriert seit: 12. Sep 2003
297 Beiträge
 
#10

Re: Abbrevia + Folders

  Alt 26. Sep 2005, 21:48
@Christian Seehase
du hast recht, aber dann ist auch die Hilfe falsch (s.a. Das Beispiel zur FindFirst (Funktion) )
Im code der FindFirst-Funktion sieht man die richtige Schreibweise
Delphi-Quellcode:
function FindFirst(const Path: string; Attr: Integer;
  var F: TSearchRec): Integer;
const
  faSpecial = faHidden or faSysFile or faVolumeID or faDirectory;
Sorry
Nur gut dass ich auch ein Beispiel ohne dieser Dateiattribute gemacht habe
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:19 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