Datei.ReadLines ohne sperren?
Kann ich Sie öffnen ein FileStream mit
new FileStream(logfileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
Ohne dass die Datei gesperrt.
Kann ich tun das gleiche mit File.ReadLines(string path)
?
InformationsquelleAutor der Frage Felipe Fujiy Pessoto | 2011-03-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht... Wenn man sich mit dem Reflektor wirst du sehen, dass am Ende
File.ReadLines
öffnet einFileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read, 0x1000, FileOptions.SequentialScan);
Also nur-Lese-Freigabe.
(es technisch öffnet ein
StreamReader
mit derFileStream
wie oben beschrieben)Werde ich hinzufügen, dass es scheint, um sein Kind spielen, um eine statische Methode, es zu tun:
Dieser gibt ein
IEnumerable<string>
(etwas besser, wenn die Datei mehrere tausend Zeilen, und Sie müssen nur dann analysieren Sie ein zu einer Zeit). Wenn Sie ein array, nennen Sie es, wieReadLines("myfile").ToArray()
mithilfe von LINQ.Bitte beachten Sie, dass, logisch, wenn die Datei-änderungen "hinter seinem Rücken (der Methode)", wie alles funktioniert, ist ziemlich undefiniert (es IST wohl technisch definiert, aber die definition ist wohl Recht lang und Komplex)
InformationsquelleAutor der Antwort xanatos
File.ReadLines()
wird die Datei sperren, bis es abgeschlossen ist.InformationsquelleAutor der Antwort Aliostad