[轉]]c# 讀寫文件時文件正由另一進程使用


c# 讀寫文件時文件正由另一進程使用,因此該進程無法訪問該文件,在IO處理上遇到了無法操作的問題。

文件“D:\log.txt”正由另一進程使用,因此該進程無法訪問該文件。

log.txt是一個日志文件,不定時都可能由另外的程序對它進行日志記錄寫入操作。

今需要對日志文件讀取出來,顯示在日志查詢里,需要用到了IO流。

1、 FileStream fs = File.OpenRead(url);
StreamReader sr = new StreamReader((System.IO.Stream)fs, System.Text.Encoding.Default);

錯誤提示:文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一進程使用,因此該進程無法訪問該文件。

2、StreamReader sr = File.OpenText(url);

錯誤提示:錯誤提示:文件“D:\Log\Cargoabc\logfilecargoabc.txt”正由另一進程使用,因此該進程無法訪問該文件。

3、 FileStream fs = new FileStream(url, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
StreamReader sr = new StreamReader(fs, System.Text.Encoding.Default);

正確讀取。

總結:

這樣的情況,不單要與只讀方式打開txt文件,而且,需要共享鎖。還必須要選擇flieShare方式為ReadWrite。因為隨時有其他程序對其進行寫操作。

 

 

////////////////////////////////////////

 

解決方案:

 

FileStream _file = new FileStream(@”c:/a.txt”, FileMode.Create, FileAccess.ReadWrite);
using (StreamWriter writer1 = new StreamWriter(_file))
{
writer.WriteLine(看你要寫什么);
writer1.Flush();
writer1.Close();

 

_file.Close();
}

///////////////////////////////////

File.Create  正由另一進程使用,因此該進程無法訪問該文件。

 

     FileStream fs= File.Create(path);
                         fs.Close();
                        fs.Dispose();

 

轉自:http://www.cnblogs.com/furenjian/archive/2013/04/09/3010070.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM