簡體   English   中英

重復/同時讀/寫文本文件

[英]Reading / Writing text file repeatedly / simultaneously

如何讀取和寫入文本文件而不會得到“文件已被其他應用程序使用”的異常?

我嘗試了File.readalltext()和File.Appendalltext()函數。我剛開始使用filestream。

在我的場景中哪種效果最好? 我也會感謝一些代碼snipplets ..

謝謝

這與打開文件時請求的鎖定和共享語義有關。

而不是使用File.ReadAllText()的快捷方法,嘗試使用System.IO.FileStreamSystem.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();
}

注意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及其構造函數重載,您可以准確地定制它的行為以適合您的目的。

您需要確保該文件未被任何其他應用程序使用。

使用您自己的應用程序,如果不在讀取之間關閉流,則無法多次讀取文件。

你需要找出原因的文件正在使用-就像一個工具的FileMon可以幫助找出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM