c#删除文件遇到问题
昨天需要写一个c#中删除记得log日志文件的程序。比如,我的一个程序需要有log,我把log写到log日志文件中,每一个月我自动建一个log文件。这个log文件是以类似"xxx04.log"命名的,其中xxx是我的项目名称,04代表4月份log。
从log日志命名上来看,下一年的四月的log也会写在里面,这样就显得比较混乱并且log日志会非常大,所以我想下一年到4月先把"xxx04.log"这个log删除,然后再创建一个同名(“xxx04.log”)。
先贴上代码吧:
class RecordLog
[csharp]
{
public FileStream fs = null;
public StreamWriter sw = null;
public string Dir = @"D:\xxx";
/// <summary>
/// 读取或者新建日志文件
/// </summary>
public RecordLog()
{
try
{
if (!Directory.Exists(Dir))// 目录不存在,新建目录
{
Directory.CreateDirectory(Dir);
}
DeleteFile();
//add end
fs = new FileStream(
Dir + "\\" + getFileName(),
FileMode.Create | FileMode.Append,
FileAccess.Write,
FileShare.None);
fs.Seek(0, System.IO.SeekOrigin.End);
sw = new StreamWriter(fs, System.Text.Encoding.UTF8);
}
catch (Exception ex)
{
MessageBox.Show("Exception" + ex.Message);
if (sw != null)
{
sw.Close();
sw = null;
}
if (fs != null)
{
fs.Close();
fs = null;
}
}
}
public string getFileName()//根据不同月份,新建不同的日志文件
{
DateTime dt = DateTime.Now;
int month = dt.Month;
string strMonth = (month > 10) ? month.ToString() : "0" + month.ToString();
return "xxx"+strMonth+".log";
}
/// <summary>
/// 写日志
/// </summary>
/// <param name="info">需要写的日志信息</param>
public void WriteLog(string info)
{
DateTime dt = DateTime.Now;
string tmp = dt.ToString();
string tmp1 = tmp.Substring(0, tmp.IndexOf("-")+1) + "0" + tmp.Substring(tmp.IndexOf("-")+1);
string tmp2 = tmp1.Replace("-", "");
string tmp3 = tmp2.Replace(":", "");
string tempTime = tmp3.Replace(" ", "");
tempTime += "|";
sw.WriteLine("{0}{1}",tempTime,info);
}
public void CloseLog()
{
if (sw != null)
{
sw.Close();
sw = null;
}
if (fs != null)
{
fs.Close();
fs = null;
}
}
public void DeleteFile()
{
try
{
if (!File.Exists(Dir + "\\" + getFileName())) //文件不存在,直接跳过
return;
DateTime createTime = File.GetLastWriteTime(Dir + "\\" + getFileName());//获取文件的最后修改时间,如果获取文件的最后创建时间,会有问题
DateTime nowTime = DateTime.Now;
//删除文件
if ((createTime.Year != nowTime.Year) && (createTime.Month == nowTime.Month))
 
补充:软件开发 , C# ,