c#进程文件访问被拒绝



在单线程应用程序中编写文件时,我得到错误

"进程无法访问该文件,因为它正在被另一个进程使用"

我打开using关键字中的所有writer对象。虽然它是一个单线程,但我每次都用ReaderWriterLockSlim锁定函数,并在完成后解锁它们。然而,我得到一个错误。你有什么想法吗?

只有这两个函数与文件通信。一个是追加,另一个是清理文件。

public void WriteToFileThreadSafe(string text, string fileName)
{
string path = ApplicationDirectory + "/" + fileName;
_readWriteLock.EnterWriteLock();
try
{
if (File.Exists(path))
{
using (StreamWriter sw = File.AppendText(path))
{
sw.WriteLine(text);
sw.Close();
}
}
}
finally
{
_readWriteLock.ExitWriteLock();
}
}
public void ClearTextFile(string fileName)
{
string path = ApplicationDirectory + "/" + fileName;
_readWriteLock.EnterWriteLock();
try
{
using (FileStream sw = File.Create(path))
{
sw.Close();
}
}
finally
{
_readWriteLock.ExitWriteLock();
}
}

谢谢你的回答。我发现了问题。程序定期发送邮件。我没有对邮件和附件实例使用using。因此,垃圾收集器不会删除邮件对象,程序流继续。当此函数调用程序关闭时:D再次感谢您的回答。-