我有一個生成跟蹤文本文件的應用程序A.
雖然,應用程序B需要讀取相同的文本文件並附加到郵件消息中。FileMode和FileAccess和IOException:進程無法訪問文件'filename',因爲它正在被另一個進程使用
但我得到以下錯誤,當應用程序B試圖讀取該文本文件:
IOException異常:該進程無法訪問該文件「文件名」,因爲它 正在被另一個進程使用
有什麼建議嗎?也許更好地使用FileMode和FileAccess?
應用程序A
if (File.Exists(nFile2)) File.Delete(nFile2);
traceFile2 = File.Open(nFile2, FileMode.Create, FileAccess.ReadWrite, FileShare.ReadWrite);
if (traceFile2 != null)
{
var twt2 = new TextWriterTraceListener(traceFile2);
// http://www.helixoft.com/blog/archives/20
try
{
if (twt2.Writer is StreamWriter)
{
(twt2.Writer as StreamWriter).AutoFlush = true;
}
}
catch { }
var indiceTraceFile2 = Trace.Listeners.Add(twt2);
System.Diagnostics.Trace.WriteLine("INICIO: " + DateTime.Now.ToString());
應用B
using (FileStream fileStream = File.Open(f, FileMode.Open, FileAccess.ReadWrite, FileShare.Read))
{
var messageAttachment = new Attachment(fileStream, Path.GetFileName(f));
msgMail.Attachments.Add(messageAttachment);
}
即使使用'FileShare.ReadWrite'? –
看起來有些其他答案使這個無效。 – EZI
由於App A正在運行,因此不會釋放應用程序A中的文件。兩個應用程序在同一時間運行。 – Kiquenet