如何在c#.net 4.5中跟踪文件更改

时间:2013-07-08 14:35:02

标签: c#

我正在用c#编写一个程序,每当有人试图打开某个.exe文件时,我们称之为“prog.exe”,程序将关闭它并随机打开其他三个程序之一,让我们调用它们“a.exe”,“b.exe”,“c.exe”。我的问题是我不希望用户只是通过更改文件的名称或位置来中断它。有没有办法可以知道文件的名称或位置是否发生了变化?

我已经设法做了所有事情,从找到程序杀死,使用.Kill()杀死它并使用

随机打开所需的.exe文件
     Random rand = new Random(DateTime.Now.Millisecond);
     int progNum = rand.Next(1, 3);
     string progName = "a.exe";

     switch (progNum)
     {
        case 2:
           progName = "b.exe";
           break;
        case 3:
           progName = "c.exe";
           break;
     }

     Process.Start(@"c:\" + progName);

但我无法弄清楚如何跟踪这些文件的更改。暂时,每分钟,我有一个搜索通过驱动器并搜索exe文件,如果在我想要的目录中找不到,但这还不够,并且不会注意到简单的名称更改。

  • 还有其他办法吗?
  • 或更好的方式来跟踪文件更改后?
  • 或者甚至只是将副本保存在内存中并将其保存到硬盘驱动器中 如果没有找到所需的位置?

1 个答案:

答案 0 :(得分:2)

var ie = Process.GetProcesses()
            .FirstOrDefault(p => p.ProcessName.Equals("iexplore"));

if (ie != null)
    ie.Kill();