我写了一个简单的windows service 主要代码如下: protected override void OnStart(string[] args)
{
WriteLog("ScheculerServer Start at " + DateTime.Now.ToString());
aTimer.Elapsed += new ElapsedEventHandler(OnTimer);
aTimer.Interval = 1000 * 3600; //每1小时
aTimer.Enabled = true;
aTimer.Start();
}
public static void FindAllFileAndDel(string path)//统计(删除)过期文件
{
DirectoryInfo[] ChildDirectory;//子目录集
FileInfo[] NewFileInfo;//当前所有文件
DirectoryInfo FatherDirectory = new DirectoryInfo(path); //当前目录
ChildDirectory = FatherDirectory.GetDirectories("*.*"); //得到子目录集
NewFileInfo = FatherDirectory.GetFiles();//得到文件集,可以进行操作
foreach (FileInfo fileinfo in FatherDirectory.GetFiles("*.*"))
{
DateTime dt = DateTime.Now.Date;
if (fileinfo.LastWriteTime.AddDays(90) < dt)//假如最后修改时间是90天之前时
{
//fileinfo.Delete();
delcount = delcount + 1;
}
}
foreach (DirectoryInfo dirInfo in ChildDirectory)
{
FindAllFileAndDel(dirInfo.FullName);
}
}
public static void OnTimer(object state, ElapsedEventArgs e)
{
System.Timers.Timer aTimer = (System.Timers.Timer)state;
DateTime dtNow = DateTime.Now;
DateTime dtRun = Convert.ToDateTime(RunTime) ;
aTimer.Stop();
WriteLog("start to count the file's number");
FindAllFileAndDel("z:\\个人目录");
WriteLog("need to delete file's number:" + delcount.ToString());
aTimer.Start();
}现在的情况是,如果被统计的目录里的文件数不多的话,在日志里可以得到文件数量,但如果文件比较多的话,日志里就没有相应的记录。请问这到底是怎么回事呢,应该如何解决好?
{
WriteLog("ScheculerServer Start at " + DateTime.Now.ToString());
aTimer.Elapsed += new ElapsedEventHandler(OnTimer);
aTimer.Interval = 1000 * 3600; //每1小时
aTimer.Enabled = true;
aTimer.Start();
}
public static void FindAllFileAndDel(string path)//统计(删除)过期文件
{
DirectoryInfo[] ChildDirectory;//子目录集
FileInfo[] NewFileInfo;//当前所有文件
DirectoryInfo FatherDirectory = new DirectoryInfo(path); //当前目录
ChildDirectory = FatherDirectory.GetDirectories("*.*"); //得到子目录集
NewFileInfo = FatherDirectory.GetFiles();//得到文件集,可以进行操作
foreach (FileInfo fileinfo in FatherDirectory.GetFiles("*.*"))
{
DateTime dt = DateTime.Now.Date;
if (fileinfo.LastWriteTime.AddDays(90) < dt)//假如最后修改时间是90天之前时
{
//fileinfo.Delete();
delcount = delcount + 1;
}
}
foreach (DirectoryInfo dirInfo in ChildDirectory)
{
FindAllFileAndDel(dirInfo.FullName);
}
}
public static void OnTimer(object state, ElapsedEventArgs e)
{
System.Timers.Timer aTimer = (System.Timers.Timer)state;
DateTime dtNow = DateTime.Now;
DateTime dtRun = Convert.ToDateTime(RunTime) ;
aTimer.Stop();
WriteLog("start to count the file's number");
FindAllFileAndDel("z:\\个人目录");
WriteLog("need to delete file's number:" + delcount.ToString());
aTimer.Start();
}现在的情况是,如果被统计的目录里的文件数不多的话,在日志里可以得到文件数量,但如果文件比较多的话,日志里就没有相应的记录。请问这到底是怎么回事呢,应该如何解决好?
ScheculerServer Start at 14:46:31
start to count the file's number