Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Entpackte Dateien mit Abbrevia (https://www.delphipraxis.net/206021-entpackte-dateien-mit-abbrevia.html)

Victor 10. Nov 2020 15:32

Entpackte Dateien mit Abbrevia
 
Hallo,

versuche die Dateien aus einer Zip-Dateien zu entpacken und später, beim "Aufräumen", diese zu löschen.
Benutze dafür Abbrevia 10.6 von TurboPack (GetIt) mit Delphi 10.4:
Delphi-Quellcode:
UnZipper := TAbUnZipper.Create(self);
UnZipper.BaseDirectory := gWorkingDir;
UnZipper.OpenArchive(zipFileName);

TracksElements := UnZipper.Count;
setLength(Tracks, TracksElements);
for TrackCnt := 0 to TracksElements -1
    do begin
    Tracks[TrackCnt].FileToPlay := gWorkingDir + PathDelim + UnZipper.Items[TrackCnt].FileName;
    end;

UnZipper.ExtractFiles('*.*');
UnZipper.CloseArchive;
UnZipper.Free;
Nach den Verwendung der entpackten Dateien möchte ich diese löschen.
Leider können "System.SysUtils.deleteFile" oder "System.Erase" diese Dateien nicht löschen.

Kennt jemand dieses Verhalten oder eventuell einen Workaround?
Danke.

zeras 10. Nov 2020 17:24

AW: Entpackte Dateien mit Abbrevia
 
Ich würde vermuten, dass dort noch ein Handle offen ist.
Kannst du die Dateien denn per Explorer löschen, wenn du dein Programm noch offen hast?

In den neuen Delphi Versionen kannst du auch direkt zippen/entzippen.
Es gibt dazu schon einige Beiträge hier.

Victor 10. Nov 2020 17:31

AW: Entpackte Dateien mit Abbrevia
 
Hallo zeras,

danke für die Hinweise!
Ja, mit dem Explorer kann ich die Dateien problemlos löschen, auch wenn die App noch läuft.
Hab mittlerweile einen minimal Test gemacht, wo lediglich der og. Quellcode benutzt wird, gefolgt vom Löschen der Dateien = gleiches Verhalten.
Denke das von Dir genannte "Handle" wohl von Abbrevia selbst gesetzt wird, aber nicht freigegeben ...

Leider kommt Delphi's eigene TZip-Komponente mit Passwort geschützte Zip-Dateien nicht zurecht.

zeras 10. Nov 2020 17:42

AW: Entpackte Dateien mit Abbrevia
 
Das wusste ich noch nicht, dass man passwortgeschützte Dateien nicht entpacken kann.
Eigentlich wollte ich auch mal zu den Delphi Zipper wechseln. Ich habe zwar keine passwortgeschützten Dateien, möchte aber mehrere Dateien auf einmal aus einem Archiv entpacken und das scheint mit den Zipper nicht zu gehen.
Ich hatte bei meinem derzeit genutzten Packer (delphizip) manchmal das Problem, dass man nach dem Entpacken noch ein wenig warten musste, damit die entpackten Dateien freigegeben sind. Kannst du mal zum Test einige Sekunden nach dem Entpacken warten und dann versuchen zu löschen?

Victor 11. Nov 2020 02:05

AW: Entpackte Dateien mit Abbrevia
 
hab auch mehrere Minuten gewartet ...

Victor 14. Nov 2020 16:21

AW: Entpackte Dateien mit Abbrevia
 
kennt jemand einen Workaround zu diesem Problem?

hoika 15. Nov 2020 01:43

AW: Entpackte Dateien mit Abbrevia
 
Hallo,
hast Du mal versucht, die Dateien vor der "Verwendung" zu löschen?
Also direkt nach dem Entpacken.

scrat1979 15. Nov 2020 21:48

AW: Entpackte Dateien mit Abbrevia
 
Probiere doch mal versuchsweise ZipForge von ComponentAce aus. Dann siehst du ja eventuell wo der Fehler zu suchen ist. Klappt es damit liegt es wohl an Abbrevia. ZipForge wäre - zumindest für den privaten Gebrauch - kostenlos.

Victor 19. Nov 2020 21:29

AW: Entpackte Dateien mit Abbrevia
 
wie schon im Beitrag #3 erwähnt - ich habe bereits eine "minimal" App gemacht, die lediglich das Entpacken, 3 Sekunden warten und dann gleich das Löschen der entpackten Dateien versucht = erfolglos.
Windows Explorer kann aber die entpackten Dateien löschen - auch während die minApp noch öffen ist ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:51 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