AGB  ·  Datenschutz  ·  Impressum  







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

Datei in Zip Archiv

Ein Thema von -Phantom- · begonnen am 17. Dez 2010 · letzter Beitrag vom 17. Dez 2010
Antwort Antwort
Seite 1 von 2  1 2      
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#1

Datei in Zip Archiv

  Alt 17. Dez 2010, 15:10
Hey Leute,

wie ihr vielleicht schon mitbekommen habt ich bin grade an einem Zip programm, läuft auch so weit gut. Im Programm kann man einstellen ob man den Verzeichnisnamen mit speichern will oder nicht. Nur wirds komisch ^^. Wenn man nun sagt verzeichnisnamen nicht mit Speichern und eine Datei hinzfügen will, die aber im selben Pfad ( unterordner usw ) auch vorhanden ist, bircht das Programm mit der Fehlermeldung "Duplicate Internal Name" ab. Wenn man aber sagt Verzeichnisnamen mit speichern klappt alles wunderbar und auch wenn die Datei im in selbern Pfad nicht vorhanden ist.

Hier mein Quelltext:
Delphi-Quellcode:
 begin
    i2 := add.Files.Count;
    for i := 0 to i2 - 1 do
    begin
      neudatei := Extractfilename(add.Files[i]);
      Item := Dateilist.Items.add;
      Item.Caption := neudatei;
      if feinstellungen.checkbox1.Checked then begin // Das hat nichts mit Hinzufügen der Datei zutun, nur das der Pfad richtig angezeigt wird
      posi := pos('\',add.Files[i]);
      teilstring := copy(add.Files[i],posi+1);
       Item.SubItems.add(Extractfilename(lblpfad.Caption) + '/' + teilstring);
      end ELSE
       Item.SubItems.add(Extractfilename(lblpfad.Caption) + '/' + neudatei);
      try
       fneu.zip.FSpecArgs.add(add.Files[i]);
        fneu.zip.add; // Mit f5 und f8 habe ich herrausgefunden, das hier das Problem liegt, aber welches?
       fneu.zip.ZipComment := fneu.smemo1.Text;
      except
        fehlerhin := True;
      end;
    end;
    for iz := 0 to Dateilist.Items.Count - 1 do
    begin
      Item2 := Dateilist.Items[iz];
      Item2.SubItems.add(inttostr(fneu.zip[iz].CompressedSize) + ' B');
      Item2.SubItems.add(datetostr(fneu.zip[iz].DateStamp));
    end;
    lblstatus.Caption := 'Dateien wurden hinzugefügt';
    if (dialogshow) and not(fehlerhin) then
      showmessage('Datei/en wurden erfolgreich hinzugefügt');
    Dateilist.Enabled := True;
    lblanzahl.Caption := inttostr(fneu.zip.Count);
    lblag.Caption := inttostr(fneu.zip.ZipFileSize div 1024) + ' KB';
    if fehlerhin then
      lblstatus.Caption := 'Fehler beim hinzufügen';
  end
  ELSE
    lblstatus.Caption := '-----';
Ich hoffe einer von euch hat die passende Antwort

PS: Ich benutze zum Hinzufügen der Dateien die Komponente : ZipMaster19

Gruß

Mathias Jansen
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:15
Ich kenne die Komponente jetzt nicht, aber wahrscheinlich muss die Kombination aus Pfad und Dateiname innerhalb des Archivs eindeutig sein. Speichert man nun den Pfad nicht mit, ist die Eindeutigkeit bei gleichem Dateinamen nicht mehr gegeben, auch wenn das Quellverzeichnis ein ganz anderes ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:21
Nun ist das Problem, dass mit dem Pfad speichern die Komponete macht
Delphi-Quellcode:
with fneu.zip do begin
if checkbox1.Checked = True then
    begin
      AddOptions := AddOptions + [AddDirNames];
      ini.WriteBool('KOMPRESSION', 'AddDirNames', True);
if checkbox1.Checked = false then
    begin
      AddOptions := AddOptions - [AddDirNames];
      ini.WriteBool('KOMPRESSION', 'AddDirNames', false);
Ich selber mache ja nichts mit dem Archiv-Pfad. Ich ändere nur den Pfad den er in die Listview eingetragen werden soll...
Mathias Jansen

Geändert von -Phantom- (17. Dez 2010 um 15:26 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:29
Was ist denn fneu? Und was hat das jetzt mit einer ListView zu tun? Ich verstehe Deinen Gedankengang nicht, sry.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:34
Fneu ist das Formular, auf dem sich die ZipMaster befindet.

Was das mit der Listview zutun hat ist ganz einfach :

Wenn ich neue Dateien hinzufüge sollen die in der Listview eingetragen werden...

und das mache ich hier
Delphi-Quellcode:
if feinstellungen.checkbox1.Checked then begin
      posi := pos('\',add.Files[i]);
      teilstring := copy(add.Files[i],posi+1);
       Item.SubItems.add(Extractfilename(lblpfad.Caption) + '/' + teilstring);
      end ELSE
       Item.SubItems.add(Extractfilename(lblpfad.Caption) + '/' + neudatei);
Ich wollte damit nur sicher stellen das niemand meint das ich damit den Pfad im Archiv ändere oder ähnliches.
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:41
Aber der Fehler tritt doch ganz woanders auf. Nochmal: es kann in einem Archiv keine 2 Dateien gleichen Namens mit gleicher Pfadangabe geben. Du kannst in einem Verzeichnis ja auch keine 2 Dateien mit gleichem Namen anlegen. Das hat doch mit einer ListView herzlich wenig zu tun.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:50
Ja mit Listview ist mir klar :
Das problem:
c:\tet.txt geht nicht weil es in c:\hallo\tet.txt die gleiche datei gibt

// Die Datei brauch ja noch nicht mal im Archiv sein .. Das Archiv kann leer sein und wenn ich denn versuche die tet.txt einzufügen wenn es im unterordner auch eine tet.txt gibt kommt der Error. wenn ich aber versuche die c:\hallo\tet.txt einzufügen geht es..

Es ist etwas komplex
Mathias Jansen

Geändert von -Phantom- (17. Dez 2010 um 15:59 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:52
Das sag ich doch die ganze Zeit.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
-Phantom-

Registriert seit: 26. Nov 2009
Ort: Bockhorst
319 Beiträge
 
Delphi 7 Enterprise
 
#9

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 15:59
Ja und wie behebe ich es?
Mathias Jansen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Datei in Zip Archiv

  Alt 17. Dez 2010, 16:01
Was willst Du beheben? Dieses Verhalten ist "by design", die Erklärung dafür habe ich doch bereits gegeben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 19:48 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