Schreibzugriffe während Einlesen unterbinden

30/11/2007 - 09:24 von Daniel L. | Report spam
Hallo zusammen,

in meiner Anwendung lese ich eine Textdatei über die StreamReader-Klasse
ein. Wàhrend des Einlesens bzw. wàhrend des Zeitraums der Verarbeitung
der Textdatei soll ein Schreibzugriff auf die Datei verhindert werden,
damit keine neue Daten in die Textdatei geschrieben werden können
(welche die Verarbeitung durcheinanderbringen würden).
Den Schreibschutz, den man im Windows-Explorer über die
Dateieigenschaften setzen kann, möchte ich nicht verwenden (eben weil
der Benutzer diesen recht einfach wieder ausstellen kann).

Welche Möglichkeiten habe ich, das Problem zu lösen?

Vielen Dank im voraus.

MfG,
Daniel L.
 

Lesen sie die antworten

#1 Carl Schaffert
30/11/2007 - 09:50 | Warnen spam
Hallo Daniel,

"Daniel L." schrieb im Newsbeitrag
news:
Hallo zusammen,

in meiner Anwendung lese ich eine Textdatei über die StreamReader-Klasse
ein. Wàhrend des Einlesens bzw. wàhrend des Zeitraums der Verarbeitung der
Textdatei soll ein Schreibzugriff auf die Datei verhindert werden, damit
keine neue Daten in die Textdatei geschrieben werden können (welche die
Verarbeitung durcheinanderbringen würden).
Den Schreibschutz, den man im Windows-Explorer über die Dateieigenschaften
setzen kann, möchte ich nicht verwenden (eben weil der Benutzer diesen
recht einfach wieder ausstellen kann).

Welche Möglichkeiten habe ich, das Problem zu lösen?




es gibt da einige Möglichkeiten u.a. die:

FileStream fs = new FileStream(@"Directory\FileName", FileMode.Open,
FileAccess.Read, FileShare.None);
StreamReader sr = new StreamReader(fs);

oder auch die:

FileInfo fInfo = new FileInfo(@"Directory\FileName");
StreamReader sr = new StreamReader(fInfo.Open(FileMode.Open,
FileAccess.Read, FileShare.None));

und noch einige weitere.

Wobei du allerdings unbedingt achten solltest, dass du die geöffneten
Objekte auch geordnet entsorgst (Close/Dispose)... am besten das Gerödels
(sofern das geht) gleich in "usings" einbinden, dann brauchst du dir keinen
Kopf zu machen.


Gruß Carl

Ähnliche fragen