我正在嘗試從文件夾中讀取文本文件,但當前該文件正在被另一個進程訪問。因此,我收到了一個異常:「...文件正在被另一個進程訪問」。打開另一個進程正在使用的文件
我使用下面的代碼
class program
{
static void Main(string[] args)
{
string lFileData = string.Empty;
try
{
if (args.Count() > 0)
lFileData = ReadLogFile(args[0]);
Console.WriteLine("{0}", lFileData);
}
catch(Exception ex)
{
Console.WriteLine("{0}", ex.Message.ToString());
}
Console.ReadLine();
}
public static string ReadLogFile(string sFileLocation)
{
string lResult = string.Empty;
var inStream = new FileStream(sFileLocation, FileMode.Open, FileAccess.Read, FileShare.Read);
using (var reader = new StreamReader(inStream))
{
lResult= reader.ReadToEnd();
}
return lResult;
}
}
但是,當我們通過記事本打開相同的文件是顯示文本文件,即使文件正被另一個進程訪問的內容。
我們希望這樣做 - 在不做任何修改的情況下閱讀文件的內容。 所以我想這:
var inStream = new FileStream(sFileLocation, FileMode.Open, FileAccess.Read, FileShare.Read);
然而,即使這樣,我們得到同樣的異常。
有人可以幫助解決這個問題?
你能提供證明問題的代碼或步驟嗎?我不清楚你是如何重現這個問題的。 –
似乎在這裏http://stackoverflow.com/questions/9759697/reading-a-file-used-by-another-process被討論了相同的問題 – Artiom
使用'FileShare.ReadWrite'? –