C# 重复/同时读/写文本文件
如何读取和写入文本文件而不出现“文件已被其他应用程序使用”的异常 我尝试了File.readalltext()和File.Appendalltext()函数。我只是从filestream开始 在我的情况下,哪一个效果最好?我也希望有一些代码剪贴画C# 重复/同时读/写文本文件,c#,file-io,filestream,C#,File Io,Filestream,如何读取和写入文本文件而不出现“文件已被其他应用程序使用”的异常 我尝试了File.readalltext()和File.Appendalltext()函数。我只是从filestream开始 在我的情况下,哪一个效果最好?我也希望有一些代码剪贴画 谢谢您需要确保该文件未被任何其他应用程序使用 对于您自己的应用程序,如果不关闭读取之间的流,则无法多次读取文件 您需要找出文件被使用的原因-像这样的工具可以帮助您找出原因。这与打开文件时请求的锁定和共享语义有关 尝试使用System.IO.FileSt
谢谢您需要确保该文件未被任何其他应用程序使用 对于您自己的应用程序,如果不关闭读取之间的流,则无法多次读取文件
您需要找出文件被使用的原因-像这样的工具可以帮助您找出原因。这与打开文件时请求的锁定和共享语义有关 尝试使用
System.IO.FileStream
和System.IO.StreamReader
/System.IO.StreamWriter
,而不是使用File.ReadAllText()
的快捷方式
要打开文件,请执行以下操作:
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var streamReader = new StreamReader(fileStream))
{
var someText = streamReader.ReadToEnd();
}
注意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");
}
注意FileShare.Read
——这告诉流只允许共享给读者
阅读
System.IO.FileStream
及其构造函数重载,您可以精确地调整其行为以满足您的目的。您的第二个代码块是文件共享。读取,而不是文件共享。写入