C#实现日志文件清除功能

时间:2024-03-17 点赞:49240 浏览:97872 作者原创标记本站原创

本文是一篇文件论文范文,文件类本科毕业论文,关于C#实现日志文件清除功能相关毕业论文的格式范文。适合文件及日志及文件名方面的的大学硕士和本科毕业论文以及文件相关开题报告范文和职称论文写作参考文献资料下载。

摘 要 :日志文件是记录系统操作事件的记录文件,操作系统有操作系统日志文件,数据库系统有数据库系统日志文件.系统日志文件是包含关于系统消息的文件,包括内核、服务、在系统上运行的应用程序等.不同的日志文件记载不同的信息.该文针对医院信息系统应用程序中产生的日志文件长时间积累导致磁盘空间满这一突出问题,提出特定的日志文件清除的解决方法.

关 键 词 :C#;日志;文件;清除

中图分类号:TP313 文献标识码:A 文章编号:1009-3044(2014)20-4728-02

C# Log File Removal Function

LIU De-jun

(Information Department, Sheyang County People's Hospital of Jiangsu ,Yancheng 224300,China)

Abstract: The log file is recorded file system operation event, operating system operating system log files, database system database, the system log file. The system log file contains a system message files, including kernel, service, an application running on the system. Different log files record different information. This paper aimed at the hospital information system in the application log file long time accumulation leads to the problem of disk space is full, puts forward solving methods specific log file cleared.

Key words: C#; log; file; clearance

我院信息系统在运行过程,会对客户端操作员的操作进行日志文件记录,随着时间推移,日志文件越来越多,导致磁盘空间满,程序运行报错.考虑到工作站众多,手动清除不现实,因此考虑通过程序让工作站操作人员来完成清除工作,经过多次测试,终于实现了日志文件清除功能.

1.需求

该功能的需求如下:1) 要清除的日志文件名称含有日期格式(如:debugSql20131115.log、YB2014-02-18.txt等);2) 要保留近6个月的日志文件备查;3) 按指定格式的文件删除.4) 因清除文件格一定且数量较多,所以系统要支持通配符(*)方式清除.4) 程序对当前所在目录进行处理.

2.方法

通过使用C#的文件操作功能,对指定格式的文件名与程序所在目录的文件进行比对,检索出日志文件名中的日期在6个月前的文件,对检索到的文件执行删除操作.

3.详细步骤

3.1 建立C#应用程序

建立界面如图1,控件参数如表1的应用程序界面(项目名称为:日志清除工具).

*_Speak.LOG

Err*.log

NH*.txt

printer*.log

YB*.txt\&]

3.2 编写代码

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

namespace WindowsApplication1

{public partial class Form1 : Form

{public Form1()

{InitializeComponent();}

private void button1_Click(object sender, EventArgs e)

{string Tdir;

string sFilename;

Tdir 等于 System.IO.Directory.GetCurrentDirectory();

Int32 j;

j等于 0;

this.toolStripStatusLabel1.Text等于"正在查找文件......";

for (Int32 i 等于 0; i < listBox1.Items.Count; i++) //遍历文件列表

{sFilename 等于 this.listBox1.Items[i].ToString();

DirectoryInfo di 等于 new DirectoryInfo(Tdir);

FileInfo[] ff 等于 di.GetFiles(sFilename); //获取所有文件名

DateTime dt;

string dt2; dt 等于 DateTime.Today;

DateTime dt1 等于 dt.AddMonths(-6);

string dt4;

if (ff.Length !等于 0) //文件不为空

{foreach (FileInfo fi in ff) //遍历目录中的指定的文件名,可带通配符*

{string tFilename;

switch (i) //格式为debugsql*.log,如debugsql20130101.log

{case 0:

tFilename 等于 sFilename.Substring(8, 1).ToString();

if (tFilename 等于等于 "*" && fi.ToString() !等于 "debugSql.log")

{DateTime result 等于 new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-6);

dt2 等于 result.ToString("yyyyMMdd");

dt4 等于 fi.Name.Substring(8, 8).ToString();

this.toolStripStatusLabel1.Text 等于 "找到文件:" + fi + ",正在检查条件......";

if (dt4.CompareTo(dt2) < 0)

{fi.Delete(); //执行行删除

this.toolStripStatusLabel1.Text 等于 "正在删除文件:" + fi + "......";}}

break;

case 1: //格式为:*_Speak.LOG,如-12-30_Speak.LOG

tFilename 等于 sFilename.Substring(0, 1).ToString();

if (tFilename 等于等于 "*")

{DateTime result 等于 new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-6);

dt2 等于 result.ToString("yyyy-MM-dd");

dt4 等于 fi.Name.Substring(0, 10).ToString();

this.toolStripStatusLabel1.Text 等于 "找到文件:" + fi + ",正在检查条件......";

if (dt4.CompareTo(dt2) < 0)

{fi.Delete();

this.toolStripStatusLabel1.Text 等于 "正在删除文件:" + fi + "......";}}

break;

//case 2:...其余文件名处理方法同上,此处略

}

j++;}}}

this.toolStripStatusLabel2.Text 等于 "处理结束......";}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

{MessageBox.Show(this.listBox1.SelectedItem.ToString());}

private void Form1_Load(object sender, EventArgs e)

{this.Text等于this.Text+"(当前目录为:"+System.IO.Directory.GetCurrentDirectory()+ "\\)";

}

private void button2_Click(object sender, EventArgs e)

{this.Close();}}}

3.3 生成可执行文件

在C#编译生成名称为“日志清除工具.exe”的可执行文件,该文件位于当前工程目录下“日志清除工具\bin\Debug\”,将该文件复制到相应需清除日志文件的目录下,在需要清除时执行一下即可.

4.体会与思考

实现日志清除功能的体会与如下:1、本文只是针对当前目录下的指定格式的日志文件实现清除功能,不对当前目录下的子目录下的日志文件进行搜索及清除;2、只是对半年前的日志文件进行清除,如需可变时间的清除时,可在DateTime result 等于 new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1).AddMonths(-6) 一行中将“6”用参数代替,根据需要通过界面或者配置文件传入即可4、本程序开发时只针对单机环境,获取的当前时间为本机时间,在网络环境下需获取服务器时间作为当前时间;5、可通过修改实现对可变文件类型的清除功能及对子目录下日志文件进行搜索及清除,笔者可以试着做做.此功能在Windows XP SP3 + Microsoft Visual Studio 2005 环境下调试通过.


相关论文

对高职电子商务多功能实训基地建设

本文是一篇电子商务论文范文,电子商务类毕业论文开题报告,关于对高职电子商务多功能实训基地建设相关硕士毕业论文范文。适合电子商务及电子。

强化会计核算功能,提升财务管理水平

该文是企业财务管理专业会计核算论文范文,主要论述了会计核算类毕业论文的格式,与强化会计核算功能,提升财务管理水平相关论文范例,适合会。

在Web项目服务端访问Office文件

本论文是一篇文件方面学术论文模板,关于在Web项目服务端访问Office文件相关毕业论文的格式范文。免费优秀的关于文件及方法及进程方面论文范。