AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi DeleteFile und die Datei ist immer noch da

DeleteFile und die Datei ist immer noch da

Ein Thema von fs999 · begonnen am 30. Aug 2016 · letzter Beitrag vom 22. Sep 2016
Antwort Antwort
Seite 1 von 2  1 2   
Benutzerbild von fs999
fs999

Registriert seit: 4. Dez 2006
Ort: Luxembourg
46 Beiträge
 
Delphi 10.3 Rio
 
#1

DeleteFile und die Datei ist immer noch da

  Alt 30. Aug 2016, 16:32
Hallo,

Mit ein Delphi 2006 geschriebenes Programm erstelle ich eine Datei im ProgramData Verzeichnis und lade die über eine Internetseite mit dem TEmbeddedWB.
Das erste mal ist alles in Ordnung, die Datei wird richtig auf der Internetseite angezeigt.
Doch wenn ich noch eine Datei (mit selben Namen) lösche, dann neu erstelle, bekomme ich keine Fehlermeldung aber auf die Internetseite wird immer die erste Datei geladen.
Erst wenn ich das Programm schließe verschwindet die Datei.
Was komisch ist DeleteFile('name') gibt True zurück und TFileStream.Create('name', fmCreate) meldet kein Fehler.
Wenn das Programm läuft kann ich nicht diese Datei öffnen, sogar als Administrator komme ich nicht in den Eigenschaften an die Security ran...
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

AW: DeleteFile und die Datei ist immer noch da

  Alt 30. Aug 2016, 16:41
Du hast wohl in deinem Programm noch ein exklusives Handle auf die Datei offen. Freest du deinen FileStream nach dem Erstellen auch korrekt?
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von fs999
fs999

Registriert seit: 4. Dez 2006
Ort: Luxembourg
46 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: DeleteFile und die Datei ist immer noch da

  Alt 30. Aug 2016, 16:47
Ja mit fs.Free;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: DeleteFile und die Datei ist immer noch da

  Alt 30. Aug 2016, 22:08
Fehlerbehandlung irgendwie?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#5

AW: DeleteFile und die Datei ist immer noch da

  Alt 30. Aug 2016, 22:38
Der TEmbeddedWB kapselt doch den IE und der guckt erstmal in den Cache. Könnte es sein, dass Du deshalb nicht die veränderte Seite zu sehen bekommst?

Nach 'nem Programmneustart weiß der dann nicht mehr, dass er die Datei schonmal angezeigt hat, zeigt sie daher neu an, wozu er die aktuelle Datei nutzt.

Wäre zumindest mal 'ne Prüfung wert, ob da so ein Effekt vorhanden sein könnte.
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#6

AW: DeleteFile und die Datei ist immer noch da

  Alt 31. Aug 2016, 07:23
Delphi-Quellcode:
procedure TForm.ButtonClick(Sender: TObject);
var Flags: OLEVariant;

begin
  Flags:=4; //NavNoReadFromCache
  WebBrowser1.Navigate('http://www.xxxxx.com/', Flags);
end;

Geändert von t.roller (31. Aug 2016 um 07:31 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von fs999
fs999

Registriert seit: 4. Dez 2006
Ort: Luxembourg
46 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: DeleteFile und die Datei ist immer noch da

  Alt 31. Aug 2016, 08:00
Fehlerbehandlung irgendwie?
Keine Fehler.
Der TEmbeddedWB kapselt doch den IE und der guckt erstmal in den Cache. Könnte es sein, dass Du deshalb nicht die veränderte Seite zu sehen bekommst?
Es ist nicht auf der Internetseite wo ich das sehe, aber im Windows Explorer. Und die Internetseite uploaded die Datei ja, sie kann nicht im Cache sein.

Ich habe vergessen zu sagen dass das nur auf Windows 10 vorkommt, nicht auf Windows 7.
Ist es möglich dass das Programm in eine Virtual Machine läuft ohne das man es weiß ?

Geändert von fs999 (31. Aug 2016 um 08:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie
(Moderator)

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: DeleteFile und die Datei ist immer noch da

  Alt 31. Aug 2016, 10:05
Ich wollte wissen, ob du eine Fehlerbehandlung in deinem Code hast. Zum Beispiel ob der Rückgabewert von 8i]delteFile[/i] geprüft wird und wenn es fehlschlägt, was als Fehlermeldung ausgegeben wird.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Pixel

Registriert seit: 23. Aug 2016
26 Beiträge
 
#9

AW: DeleteFile und die Datei ist immer noch da

  Alt 31. Aug 2016, 11:34
Also um das was Luckie gefragt hat nochmals zu verdeutlichen:

Delphi-Quellcode:
procedure checkErrorDeleteFile(const path : string);
begin
  SetLastError(0);
  DeleteFile(path);
  ShowMessage(IntToStr(GetLastError));
end;
Anschließend kannst du hier nach dem Errorcode der in der Messagebox angezeigt wurde suchen, dann weißt du was das Problem ist in der Regel.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
40.045 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: DeleteFile und die Datei ist immer noch da

  Alt 31. Aug 2016, 11:47
Ähhhhh, FALSCH und FALSCH.

siehe MSDN-Library durchsuchenDeleteFile

Delphi-Quellcode:
procedure checkErrorDeleteFile(const path : string);
begin
  //SetLastError(0); // das heißt LAST-Error und nicht THIS-Error
  is not DeleteFile(PChar(path)) then // rate mal, warum der Wert von GetLASTError nur "definitert" ist, wenn es einen Fehler gab :roll:
    //ShowMessage(IntToStr(GetLastError)); //ShorMessage als Fehlerbehandlung?
    RaiseLastOSError; // aka raise Exception.Create(SysErrorMessage(GetLastError));
end;
Sorry, es gibt zwar viele Wege, um nach Rom zu kommen, aber man sollte niemals nach links gehn, wenn dort ein Schild "rechts" steht.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (31. Aug 2016 um 12:10 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf