帮忙写一个c#控制台应用程序

急啊,望各位大侠帮帮忙!谢了!
一.实现语言及环境:
A.语言C#
B.环境 Microsoft Visval Studio 2008或2005
二.要求
功能描述:时时(相对的)监测c盘下一个xml文件的变化,如果变化则从控制台输出“文件已修改,请重新解析。”
具体要求:
1.xml文档路径:C:\inetpub\wwwroot\test.xml,可以以xml文档的修改时间为标准,只要修改时间变化了,就发出消息。
2.要求代码清晰完整,可调试,符合规范。
3.总之,不需要监测的太详细,只要此目录下xml文档发生变化,能发出“文件已修改,请重新解析”就行。
4.谢谢了,写完发到我的邮箱就好,[email protected] 必有重谢!
不行啊,调试不成功!不管咋的,还是谢谢你!

本人新手,答案仅供参考,如果有更好的话还请高手指点指点!

思路:要不断监测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表示已经修改过,不执行循环
}

}
}
}
}

完毕……

不好意思 子线程里面文件名写错了~~ 现在改好了 已经发你邮件了~
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-09
http://hi.baidu.com/jonnysuen/blog/item/3febac22f5ad024dad34ded3.html

监控文件系统新增/删除/修改

指定监控目录及文件类型即可。简单。
相似回答