C# 重复/同时读/写文本文件

C# 重复/同时读/写文本文件,c#,file-io,filestream,C#,File Io,Filestream,如何读取和写入文本文件而不出现“文件已被其他应用程序使用”的异常 我尝试了File.readalltext()和File.Appendalltext()函数。我只是从filestream开始 在我的情况下,哪一个效果最好?我也希望有一些代码剪贴画 谢谢您需要确保该文件未被任何其他应用程序使用 对于您自己的应用程序,如果不关闭读取之间的流,则无法多次读取文件 您需要找出文件被使用的原因-像这样的工具可以帮助您找出原因。这与打开文件时请求的锁定和共享语义有关 尝试使用System.IO.FileSt

如何读取和写入文本文件而不出现“文件已被其他应用程序使用”的异常

我尝试了File.readalltext()和File.Appendalltext()函数。我只是从filestream开始

在我的情况下,哪一个效果最好?我也希望有一些代码剪贴画


谢谢

您需要确保该文件未被任何其他应用程序使用

对于您自己的应用程序,如果不关闭读取之间的流,则无法多次读取文件


您需要找出文件被使用的原因-像这样的工具可以帮助您找出原因。

这与打开文件时请求的锁定和共享语义有关

尝试使用
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
及其构造函数重载,您可以精确地调整其行为以满足您的目的。

您的第二个代码块是
文件共享。读取
,而不是
文件共享。写入