Jos*_*osh 3 c# file-io filestream
如何读取和写入文本文件而不会得到"文件已被其他应用程序使用"的异常?
我尝试了File.readalltext()和File.Appendalltext()函数.我刚开始使用filestream.
在我的场景中哪种效果最好?我也会感谢一些代码snipplets ..
谢谢
这与打开文件时请求的锁定和共享语义有关.
而不是使用快捷方法File.ReadAllText(),尝试使用a System.IO.FileStream和System.IO.StreamReader/ System.IO.StreamWriter.
要打开文件:
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var streamReader = new StreamReader(fileStream))
{
var someText = streamReader.ReadToEnd();
}
Run Code Online (Sandbox Code Playgroud)
请注意FileShare.ReadWrite- 这告诉流允许与其他读者或其他作者共享.
写作尝试类似的东西
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Create, FileAccess.Write, FileShare.Read))
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("some text");
}
Run Code Online (Sandbox Code Playgroud)
请注意FileShare.Read- 这告诉流只允许向读者共享.
阅读System.IO.FileStream它的构造函数和它的构造函数重载,你可以准确地定制它的行为以适应你的目的.