![]() |
TFileStream EFOpenError
Hallo,
mir ist aktuell folgendes Verhalten unklar. Es wird die Existens der Datei geprüft (befindet sich auf einem Netzlaufwerk), direkt danach wird die Datei mit einem Stream gelesen. Wie kann es dabei zu der Fehlermeldung kommen, dass die Datei nicht gefunden werden konnte? exception message : Datei "..." kann nicht geöffnet werden. Das System kann die angegebene Datei nicht finden.
Delphi-Quellcode:
// ...
if FileExists(Filename) then begin Stream := TFileStream.Create(Filename, fmOpenRead or fmShareDenyNone); // ... |
AW: TFileStream EFOpenError
Evtl. Wildcards im Dateinamen vorhanden?
Dann wird eine Datei gefunden die diesem Wildcard entspricht, aber geöffnet kann sie natürlich nicht werden. |
AW: TFileStream EFOpenError
Zitat:
Es handelt sich hier um eine Texdatei "*.log" hier werden alle 60s die Werte neu rein geschrieben <-- Darauf habe ich keinen Einfluss und keine Einsicht Demnach wird auch in meinem Programm die Datei alle 60s ausgelesen. Die Fehlermeldung gibt es jedoch immer erst nach einigen Stunden im Testbetrieb. Es gibt bei den Ausfällen keine erkennbaren Muster, wie eine bestimmte Uhrzeit oder Stundenzahl. Taucht also eher sporatisch auf, bis es jedoch soweit ist, wurde die Datei sicher schon einige zehntausend mal ausgelesen. |
AW: TFileStream EFOpenError
Wenn sehr oft Datei geöffnet und geschrieben wird könnte es auch sein das ein Virenscanner querschießt und die Datei kurzzeitig im Beschlag hat. Evtl. mal Virenscanner für das Verzeichnis abschalten.
|
AW: TFileStream EFOpenError
Auf eine Datei namens "*.log" wirst Du nur mit direkter Kommunikation auf NTAPI-Ebene zugreifen können (genauso wie halt lpt1, etc.).
Deswegen extra die Nachfrage von Bernhard Geyer, und ich vermute mal, Du meinst nicht *.log, sondern irgendwas.log mit anderem irgendwas. Wird die Datei neu erstellt, wenn sie geschrieben wird, oder wird wirklich nur angehängt? Sonst gäbe es halt einen winzigen Augenblick, in dem sie tatsächlich nicht existiert. Außerdem gibt es einen Bug in fmShareDenyNone, das denied nämlich das Löschen. Das FreePascal-Team habe ich dazu sofort zum fixen überredet bekommen, ![]() |
AW: TFileStream EFOpenError
Greifen mehrere Instanzen auf dieselbe Datei zu? Findet vielleicht ein Umbenennen ab einer bestimmten Größe statt und Du rennst da genau zu dem Zeitpunkt rein?
|
AW: TFileStream EFOpenError
Zitat:
Zitat:
Zitat:
Da es sich hier nicht wirklich um einen Log, sonder um einen Export von 4 Werten aus einer DB handelt, stehen nie mehr als 4 Werte in der Datei. Dadurch könnte ich mir vorstellen, dass die Datei über löschen und schreiben aktualisiert wird. Wie gesagt, ich habe und hatte keinen Einfluss auf die Exportfunktion, welche die Werte in die Datei überträgt. |
AW: TFileStream EFOpenError
Zitat:
Zitat:
|
AW: TFileStream EFOpenError
Zitat:
Zitat:
Date modified: 07.10.2011 11:13 Demnach wird die Datei doch nicht gelöscht? Das "Date created" müsste doch mit dem "Date modified" übereinstimmen? |
AW: TFileStream EFOpenError
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:46 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