我有一个生成跟踪文本文件的应用程序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