![]() |
Schreib-Zugriff auf Datei
Hi,
hab ein kleines Problem, für das ich keine "schöne" Lösung finde bislang. Und zwar habe ich ein Programm, welches eine Datei öffnet, den Inhalt ausliest, dann wieder schließt. Dann kann man Sachen an dem Inhalt ändern und irgendwann dann wieder zurück speichern. Nun will ich, dass wenn jemand anderes in der Zeit (solange man die Datei "offen" hat) die Datei mit meinem prog öffnen will nur Lese-Rechte bekommt und nicht speichern kann, da sich die beiden ja sonst gegenseitig überschreiben. Gibt es da gute Lösungsansätze? Will die Datei eigentlich nicht die ganze Zeit offen halten. Und es sollte möglichst auch ein Schutz sein, den Windows eventuell wieder selber wegbekommt (falls das Prog zum Beispiel zwischendurch abstürzt, dann würde die Datei ja Schreibgeschützt bleiben). greetz, Steffen |
Re: Schreib-Zugriff auf Datei
Hallo Steffen,
setze doch die Datei nach dem Einlesen und bis zum Zurückschreiben einfach auf ReadOnly:
Delphi-Quellcode:
Grüße vom marabu
uses
SysUtils; begin Memo.Lines.LoadFromFile(fileName); if FileIsReadOnly(fileName) then // tell user else FileSetReadOnly(fileName, true); end; |
Re: Schreib-Zugriff auf Datei
thx, die idee ist ganz gut.
Windows setzt dann zwar die Rechte nicht automatisch zurück, aber falls das Prog abstürzt kann es so trotzdem noch jeder machen :) danke nochma, Steffen |
Re: Schreib-Zugriff auf Datei
Aber das andere Programm könnte die Datei sofort wieder zurücksetzten mit filesetreadonly(false)...
|
Re: Schreib-Zugriff auf Datei
Öffne die Datei exklusiv.
|
Re: Schreib-Zugriff auf Datei
@ichbins:
da mein prog das einzige ist, was die Datei öffnen kann, ist das kein problem ;) Ist für meinen ![]() @Luckie: Was genau heisst das? Und wie macht mans? :) greetz Steffen |
Re: Schreib-Zugriff auf Datei
Hallo Steffen,
exklusives Öffnen verhindert, dass ein anderer Prozess auf die Datei zugreifen kann, während du sie offen hältst. In der Online-Hilfe findest du Informationen dazu unter TFileStream.Create. Wenn du die Datei, wie in meinem Beispiel-Code, per LoadFromFile lädst, dann hast du die Datei exklusiv geöffnet und nach dem Lesen sofort wieder geschlossen. Grüße vom marabu |
Re: Schreib-Zugriff auf Datei
ja, das dachte ich mir schon.
Nur muss ich sie ja dann offen halten, damit das so bleibt. Ansonsten ist das ja gleich wieder weg. greetz Steffen |
Re: Schreib-Zugriff auf Datei
Wäre es nicht denkbar, mit einer temporären Kontrolldatei zu arbeiten, die statt der eigentlichen Datei exklusiv geöffnet wird. Dann bleibt der Zugriff auf die Datei weiterhin möglich, den Schreibschutz musst Du dabei selbst steuern.
|
Re: Schreib-Zugriff auf Datei
Ja, hatte ich auch überlegt, finde nur eine zusätzliche Datei sehr unschön.
Das soll nur eine Datei bleiben ;) greetz Steffen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 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 by Thomas Breitkreuz