当前位置:编程学习 > C#/ASP.NET >>

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# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,