我有一个应用程序 A,它生成一个用于跟踪的文本文件。
同时,应用程序 B 需要读取相同的文本文件并附加在邮件消息中。
但是当应用程序 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);
}