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

本文关键字:跟踪 文件 net | 更新日期: 2023-09-27 18:21:35

我正在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文件,就会搜索,但这还不够,简单的名称更改也不会被注意到。

  • 还有别的办法吗
  • 还是一种更好的跟踪文件更改后的方法
  • 甚至只需在内存中保存一份副本并将其保存到硬盘如果在所需位置未找到

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

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