C# 无法关闭streamwriter并重新打开以追加数据
为了创建日志,我创建了一个小类。 此类使用streamwriter函数来完成此操作 我写了一个日志,在关闭日志之后,我想在之后重新打开,以便附加一些数据 我尝试了几个技巧,而且…我总是有一个例外,他告诉我“文件被另一个进程使用” 尽管如此,我还是使用close(),但是,我总是有这个例外 这是我的班级:C# 无法关闭streamwriter并重新打开以追加数据,c#,.net,exception,streamwriter,C#,.net,Exception,Streamwriter,为了创建日志,我创建了一个小类。 此类使用streamwriter函数来完成此操作 我写了一个日志,在关闭日志之后,我想在之后重新打开,以便附加一些数据 我尝试了几个技巧,而且…我总是有一个例外,他告诉我“文件被另一个进程使用” 尽管如此,我还是使用close(),但是,我总是有这个例外 这是我的班级: using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syste
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
namespace TEST
{
public class CLog
{
private StreamWriter myWriter;
public string Name
{
set { Name = value; }
get
{
FileInfo myFile = new FileInfo(CompleteFileName);
return myFile.Name;
}
}
public string Directory
{
set { Directory = value; }
get
{
FileInfo myFile = new FileInfo(CompleteFileName);
return myFile.Directory.ToString();
}
}
public string CompleteFileName { set; get; }
public CLog(string _CompleteFileName)
{
CompleteFileName = _CompleteFileName;
}
public bool CreateLog()
{
try
{
myWriter = new StreamWriter(CompleteFileName);
return true;
}
catch (Exception ex )
{
return false;
}
}
public bool AppendTextToFile(string strText)
{
try
{
using (System.IO.StreamWriter sw = System.IO.File.AppendText(CompleteFileName))
{
sw.WriteLine(strText);
}
return true;
}
catch (Exception ex)
{
return false;
}
}
public bool WriteLine(string strLine)
{
try
{
myWriter.WriteLine(strLine);
return true;
}
catch (Exception ex)
{
return false;
}
}
public bool SaveFile()
{
try
{
myWriter.Close();
myWriter.Dispose();
return true;
}
catch (Exception ex)
{
return false;
}
}
}
}
请看AppendTextToFile
以下是使用方法:
monLog = new CLog("C:\\TEST.TXT");
if (monLog.CreateLog())
{
monLog.WriteLine("");
monLog.WriteLine("******");
monLog.WriteLine("Some data");
monLog.WriteLine("******");
monLog.SaveFile();
...
....
monLog.AppendTextToFile("** my AppendedData***);
monLog.SaveFile();
}
有人知道我为什么会有这个异常,以及如何解决它吗
非常感谢:)您的记录器有一个奇怪的界面。。除此之外,您的代码在我的计算机上运行良好。我能想到的唯一一件事是在其中一个方法中引发异常,因为您没有在任何异常处理程序中处理
StreamWriter
,这可能会导致文件的句柄保持打开状态,因此,请尝试找出是否有任何方法正在引发异常,并在每个异常处理程序中添加代码,以正确关闭和处置StreamWriter
。下面是一些您可以查看的内容,您不知道为什么,但即使在添加close()dans dispose()时,我也有异常!