![]() |
Datei in einer zip löschen
Hey Leute,
Ich bin ja grade dabei einen "Entpacker" zu programmieren. Ich hab es nun so gemacht das man eine .zip öffnen kann und dann können die Inhalte angezeigt werden. Nun wollte ich es so machen das einzelne Dateien gelöscht werden können. Mein versuch:
Delphi-Quellcode:
Wisst ihr was ich falsch mache?
procedure TForm2.sBitBtn6Click(Sender: TObject);
var i : Integer; begin with slistview1 do for i := 0 to Items.Count - 1 do if Items[i].Selected then begin abzipper1.OpenArchive(openarchive); delepf := items[i].SubItems[0]; // der Pfad z.B C:\blala.... abzipper1.DeleteFiles(delepf); abzipper1.CloseArchive; end; slistview1.Selected.Delete; end; end. // das Problem ist das die Datei immer noch vorhanden ist |
Re: Datei in einer zip löschen
Ja, Du formatierst Deinen Code nicht und verschweigst uns die Fehlermeldung. Ich vermute, DeleteFiles will einen TStrings-Abkömmling als Parameter.
|
Re: Datei in einer zip löschen
Und versuche auf globale variablen zu verzichten
|
Re: Datei in einer zip löschen
@daddyh
Ich bekomme keine Fehlermeldung ?! und wie formatiere ich mein code den richtig? |
Re: Datei in einer zip löschen
Wie man Code formatieren sollte, kannst Du im
![]() |
Re: Datei in einer zip löschen
Ja es ist die Komponente, aber ich finde in den Demos nichts verwendbares
|
Re: Datei in einer zip löschen
Das ZipView Beispiel sollte aber hilfreich sein :zwinker:
|
Re: Datei in einer zip löschen
hab das hier gefunden
Delphi-Quellcode:
Aber Problem: ich benutze nicht die AbzipView1 sonder die listview1 und die hat kein "tagged".
procedure TForm1.Delete1Click(Sender: TObject);
var i : Longint; begin Panel1.Caption := ''; with AbZipView1 do for i := 0 to Pred(Count) do Items[i].Tagged := Selected[i]; AbZipKit1.DeleteTaggedItems; Panel1.Caption := ''; end; Geht das auch mit der normalen listview? |
Re: Datei in einer zip löschen
Zitat:
|
Re: Datei in einer zip löschen
Zitat:
|
Re: Datei in einer zip löschen
@cookie
mach ich doch hier
Delphi-Quellcode:
oder nicht?
begin
with slistview1 do for i := 0 to Items.Count - 1 do if Items[i].Selected then begin abzipper1.OpenArchive(openarchive); delepf := items[i]..SubItems[0]; :?: |
Re: Datei in einer zip löschen
Man kann aber nicht unbedingt davon ausgehen, das die Indizes der beiden Listen identisch sind
|
Re: Datei in einer zip löschen
gib es da nicht ne list die man befüllen kann? so kenn ich das von delzip, zipforge oder ziptv. ansonsten mußt du die datei namen abgleichen.
|
Re: Datei in einer zip löschen
Ja in der Komponente gibt es ne Abzipview. Aber ich benutze eine ganz normale Listview und möchte das auch beibehalten. Wie mache ich das den nun mit der ganz normalen Listview?
|
Re: Datei in einer zip löschen
Du musst den passenden Eintrag suchen
|
Re: Datei in einer zip löschen
Ja wo den?
|
Re: Datei in einer zip löschen
Keiner ne Idee? Ich hab das gleiche Problem auch wenn ich Dateien die sich noch in der zip befinden ausführen will.
Wie muss ich das machen? |
Re: Datei in einer zip löschen
das mit dem Ausführen hab ich nun hinbekommen
Delphi-Quellcode:
var
runfile : String; i : Integer; begin for i := 0 to slistview1.Items.Count -1 do begin if slistview1.Items[i].Selected then begin abunzipper1.FileName := openpf; abunzipper1.BaseDirectory := extractfilepath(openpf); runfile := extractfilepath(openpf)+slistview1.Items[i].Caption; abunzipper1.ExtractFiles(runfile); abunzipper1.OpenArchive(openpf); shellExecute(0, Nil, PChar(runfile), Pchar(''), Pchar('C:\StartDir'), SW_NORMAL); label2.Caption := runfile; end; end; end; |
Re: Datei in einer zip löschen
Zitat:
Zitat:
![]() |
Re: Datei in einer zip löschen
Ich habe es nun auch geschafft die Dateien zulöschen...
Delphi-Quellcode:
// ist nicht grade Elegant gelöst, aber gelöstvar filesource, filedest,datei, d2,filen: String; i : Integer; begin // bei vista öffnen if (windowsversion = '6.0') and (slabel1.Caption = 'Öffnen') then begin filesource := openpf; createdir('C:\Program Files\Ultimate Zip\temp2\'); filen := 'C:\Program Files\Ultimate Zip\temp2\'; filedest := 'C:\Program Files\Ultimate Zip\temp2\'+Extractfilename(openpf); CopyFile(PChar(fileSource), PChar(fileDest), True); abzipper1.CloseArchive; abunzipper1.CloseArchive; deletefile(openpf); abunzipper1.FileName := filedest; abunzipper1.BaseDirectory := Extractfilepath(filedest); abunzipper1.ExtractFiles('*.*'); abunzipper1.CloseArchive; abzipper1.CloseArchive; deletefile(filedest); for i := 0 to slistview1.Items.Count -1 do begin if slistview1.Items[i].Selected then begin datei := StringReplace(slistview1.Items[i].Caption,'/','\',[rfReplaceAll]); d2 := filen+Extractfilename(datei); label2.Caption := d2; deletefile(d2); zz2(openpf); DeleteFile('C:\Program Files\Ultimate Zip\temp2\*.*'); slistview1.Items.Delete(i); end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr. |
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