AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wie feststellen, ob eine Datei gelesen werden kann?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie feststellen, ob eine Datei gelesen werden kann?

Ein Thema von PeterPanino · begonnen am 15. Apr 2016 · letzter Beitrag vom 19. Apr 2016
 
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#19

AW: Wie feststellen, ob eine Datei gelesen werden kann?

  Alt 17. Apr 2016, 16:27
Da wäre eine Routine recht praktisch, mit der man (direkt, also nicht durch Rückschlüsse) herausfinden kann, mit welchen Flags eine Datei geöffnet ist. Gibt's denn sowas?
Eventuell, aber wofür? Wenn du die Datei in einem Programm öffnen willst, wirst du ja schon sehr genau wissen, was due machen musst. (ALso ob der Bneutzer Öffnet oder speichert)

Und das einzige, was hier sinnvoll ist, ist die Aktion zu probieren. Und wenn es nicht ging, dann gab es wohl ein Problem und man kann eine Fehlermeldung anzeigen. Die Info, ob eine Datei schreibbar ist, ist ja in dem Moment schon veraltet (und damit nutzlos) in dem die sie bekommst. Stell dir eine Anwendung vor, die 10 Mal pro Sekunde eine Datei exklusiv zum schreiben öffnet, eine Zeile schreibt und wieder schließt. Doofes Programm, aber kann man machen. Und du versuchst, die gleiche Datei zu öffnen.
Wenn du dann sowas machst wie
Delphi-Quellcode:
if IsFileReadable(AHTMLFile) then
  ThisHTMLStr := TFile.ReadAllText(AHTMLFile)
else
  LogThisError;
Ist dein Programm instabil, weil es dennoch zu einer Exception kommen kann!
Denk' immer dran, dein Programm kann jederzeit unterbrochen werden. Und bevor du wieder drankommst können potenziell alle anderen Prozesse im System laufen.


Und dann bin ich gerade noch auf opportunistic locks gestoßen. EIn Programm kann damit eine Datei zum schreiben öffnen und wird benachrichtigt, wenn ein zweites Programm schreiben möchte um dann seinen Zugriff zu beenden.
Es könnte also sein, dass die Datei zwar in Verwendung ist, du aber den Schreibzugriff trotzdem bekommst, wenn du fragst

Geändert von jfheins (17. Apr 2016 um 17:09 Uhr)
  Mit Zitat antworten Zitat
 


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 16:01 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