Hi,
Ich habe ein Programm mit dem ich ein Zip-Archiv auslese.
das ganze mache ich wie folgt (mit TZipForge):
Delphi-Quellcode:
//Öffnen
begin
Zip.FileName:=FileName;
FTempDir:=IncludeTrailingPathDelimiter(ExtractFilePath(FileName))+'Temp\';
Zip.BaseDir:=FTempDir;
end;
//Analyse
begin
Zip.OpenArchive;
Zip.ExtractFiles('VT*');
Zip.CloseArchive;
while Zip.Active do //Braucht halt ne kurze Zeit...
Delay(100);
FindFirst(FTempDir+'VT*.*',faAnyFile,F);
Result:=OpenFile(FTempDir+F.Name); //Analyse der Extrahierten Datei
end;
//Schliessen
begin
Zip.BaseDir:='';
if not DeleteFile(FTempDir+'VT05_06.DBF') then ShowMessage(SysErrorMessage(GetLastError));
if not RemoveDir(FTempDir) then ShowMessage(SysErrorMessage(GetLastError));
end;
nur kann das Verzeichnis nie wieder gelöscht werden, weil es noch "von einem anderen Prozess verwendet wird."
BTW ist es dasselbe wenn ich per hand versuche es zu lsöchen aber das programm noch läuft.
beende ich es, kann ich das verzeichnis sofort löschen.
die datei kann ich immer problemlos löschen
kann mir das irgendwer erklären?