AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi DeleteFile löscht gewünschte Datei nicht
Thema durchsuchen
Ansicht
Themen-Optionen

DeleteFile löscht gewünschte Datei nicht

Ein Thema von Metallicwar · begonnen am 4. Mär 2011 · letzter Beitrag vom 4. Mär 2011
Antwort Antwort
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#1

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 13:27
Kann sein, daß dein Antivierenprogramm die Datei noch nicht freigibt.
Auf jeden Fall mal das free vor dem delete probieren.
Statt des Application.ProcessMessages mal ein sleep(1) versuchen (zwischen free und delete).

Hast du AbZIPEntpacken:=TZipDingens.Create irgendwo stehen ?
Das mit dem Antivirenprogramm bezweifle ich.
das mit dem sleep werd ich mal probieren.

TZipDingens.Create hab ich nirgends stehen, habe doch erwähnt dass ich die Komponente nicht zur Laufzeit erzeuge.


Zitat:
Zitat von Metallicwar:
habe das Free entfernt, nun meckert er, nachdem ich erneut den button anklicke, dass der Ordern Bankdaten.zip nicht erstellt werden kann.


Liegt aber vermutlich daran, dass der Ordner bereits existiert, daher möchte ich ihn ja löschen.
Es wird nun aus genau dem selben Grund gemeckert, weswegen die Datei vorher auch nicht gelöscht werden konnte.
> Du hast über .FileName dem AbZIPEntpacken gesagt, es soll diese Datei öffnen/verwenden und das macht es auch, bis du was Anderes sagst.

Hast du dir mal das Result, GetLastError und SysErrorMessage angesehn?


Zitat:
AbZIPEntpacken.Create(Self);
Wie erzeugt man Objekte?
AbZIPEntpacken := TAbZIPEntpacken.Create(Self); .

Und wenn du es freigibst, dann ist es weg, also neu erstellen, aber wenn du es manuell erstellst, dann darfst du nicht die Komponente auf die Form legen,
also nicht automatisch von der VCL erstellen lassen, wärend sie die Form erstellt.
ok, werd die Komponente mal zur Laufzeit erzeugen, und P.s ja ich weis wie man Objekte erzeugt

das mit GetLastError muss ich mal schaun wie's funktioniert. F1 sollte weiterhelfen
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 13:31
wenn du das mit dem Antivirenprogramm bezweifeslt, dann kannst du dir das mit dem sleep sparen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#3

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 13:35
nimm' lieber Delphi-Referenz durchsuchenSysErrorMessage oder gleich Hier im Forum suchenSysErrorMessage
> http://www.delphipraxis.net/158106-r...parameter.html (da DeleteFile = RenameFile, nja fast, paßt es ja)
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#4

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 13:39
Delphi-Quellcode:
procedure TfrmBankenDownload.ZIPAusführen;
var
  sExePfad, sZIPPfad: String;
  AbZIPEntpacken : TAbUnZipper;
begin
  sZIPPfad := ExtractFilePath(ParamStr(0))+'Bankdaten.zip';
  TRY
    ftpDateiDownload.Get('Bankdaten.zip',sZIPPfad, true);
  EXCEPT
    on E: Exception do
    ShowMessage('Beim Download der ZIP Datei ist ein Fehler aufgetreten.' + sLineBreak +
                'Exception class name = '+E.ClassName + sLineBreak +
                'Exception message = '+E.Message);
  END;
  TRY
    begin
      AbZIPEntpacken := TAbUnZipper.Create(Self);
      sExePfad := ExtractFilePath(Application.ExeName);
      AbZIPEntpacken.FileName := sZIPPfad;
      AbZIPEntpacken.BaseDirectory := (sExePfad+'Bankdaten');
      AbZIPEntpacken.ExtractFiles('*.*');
      Application.ProcessMessages;
    end;
  EXCEPT
    on E: Exception do
    begin
      ShowMessage('Es ist ein Fehler beim Entpacken der ZIP Datei aufgetreten.' + sLineBreak +
                  'Exception class name = '+E.ClassName + sLineBreak +
                  'Exception message = '+E.Message);
    end;
  END;
  AbZIPEntpacken.Free;
  SysUtils.DeleteFile(sZIPPfad);
  ftpDateiDownload.Disconnect;
end;
also so wie's aussieht, lag schon von himitsu vermutet, an der ZIP Komponente, hab sie jetzte mal zur Laufzeit erzeugt und siehe da, es funktioniert !

Vielen Dank für die Hilfe !
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.403 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 13:43
Hi,

ein AbZipXX.close hätte vor dem Delete vermutlich auch schon ausgereicht...

Grüße
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#6

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 13:44
Wenn diese Komponente ordentlich geschrieben ist, sollte man auch irgendwie die Datei wieder schließen/freigeben können.

Ich kenn diese allerdings nicht, aber eventuell gibt es ja sowas wie AbZIPEntpacken.CloseFile oder AbZIPEntpacken.FileName := '';
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Metallicwar

Registriert seit: 5. Feb 2010
Ort: Bad Kissingen
293 Beiträge
 
Delphi XE Architect
 
#7

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 14:17
Wenn diese Komponente ordentlich geschrieben ist, sollte man auch irgendwie die Datei wieder schließen/freigeben können.

Ich kenn diese allerdings nicht, aber eventuell gibt es ja sowas wie AbZIPEntpacken.CloseFile oder AbZIPEntpacken.FileName := '';

CloseFile gibts nicht. und den FileName leer setzen, hab ich nicht probiert.

Aber diese Komponente ist nicht gut geschrieben, hat mein Kollege bestätigt. Er empfiehlt http://www.componentace.com/zip_comp...i_zipforge.htm
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.403 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 14:35

CloseFile gibts nicht. und den FileName leer setzen, hab ich nicht probiert.
Wie schon oben beschrieben heißt die Methode in der aktuellen Version Close;

Aber diese Komponente ist nicht gut geschrieben, hat mein Kollege bestätigt. Er empfiehlt http://www.componentace.com/zip_comp...i_zipforge.htm
sicherlich keine schlechte Entscheidung....
  Mit Zitat antworten Zitat
Benutzerbild von Assarbad
Assarbad

Registriert seit: 8. Okt 2010
Ort: Frankfurt am Main
1.234 Beiträge
 
#9

AW: DeleteFile löscht gewünschte Datei nicht

  Alt 4. Mär 2011, 16:40
MoveFileExW -> MoveFileWithProgressW -> BasepMoveFileDelayed

Dort wird dann der Registryschlüssel geöffnet und das kann in der Tat schiefgehen wenn der Benutzer nicht alle Rechte auf diesen Schlüssel besitzt, wie es aussieht. Hast also recht, himitsu.
Oliver
"... aber vertrauen Sie uns, die Physik stimmt." (Prof. Harald Lesch)
  Mit Zitat antworten Zitat
Antwort Antwort


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