本人新手,答案仅供参考,如果有更好的话还请高手指点指点!
思路:要不断监测c盘下一个xml文件的变化,那么就要用File类下的GetLastWriteTime() 方法 来获取指定文件的 修改时间
而且最好 使用多线程来进行操作,如果都写在主线程的话 就会出现 程序无响应现象
代码基本都注释了,请看下面
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;//file类的命名空间
using System.Threading;//线程
namespace ConsoleApplication1
{
class Program
{
static bool Modified;//存储是否修改过
static DateTime dt;//存储时间
static void Main(string[] args)
{
dt = File.GetLastWriteTime(@"c:\测试.xml");
//将原始时间赋给dt
Modified = false;//表示还未修改
Thread thread = new Thread(new ThreadStart(look));
//开启子线程
thread.IsBackground = true;
//设为后台线程(主线程关闭,后台线程跟着关闭)
thread.Start();
Console.Read();
}
static void look()
{
while (!Modified)
{
Thread.Sleep(100);
//挂起指定时间(毫秒),如果不写的话会占用大量cpu资源
DateTime tempDT = File.GetLastWriteTime(@"C:\测试.xml");
if (!tempDT.Equals(dt))//两个时间进行比较
{
Console.WriteLine("文件已修改,请重新解析!");
Modified = true;
//改为true表示已经修改过,不执行循环
}
}
}
}
}
完毕……
不好意思 子线程里面文件名写错了~~ 现在改好了 已经发你邮件了~
温馨提示:答案为网友推荐,仅供参考