我正在寻找一种方法来确定文件是否已被执行。我已经看了一下FileInfo的LastAccessTime,但是当执行文件时这似乎没有改变。我也研究过FileSystemWatcher,但这似乎也没有提供解决方案。是否存在文件执行监听器或其他方式?如果它有帮助,我正在寻找一个文件夹监听器,它在监视/执行后重命名.avi文件。
答案 0 :(得分:1)
实际上,LastAccessTime
可能就是你想要的,因为AVI文件没有“执行”,只是打开了。在过去,我使用它完全是你描述的目的,但不是以编程方式。
仅仅为了完整起见:Windows不保留执行历史记录,至少不公开。
已编辑添加:
根据MSDN,LastAccessTime
是你最好的镜头,但是:
注意此方法可能返回不准确的值,因为它使用的是本机函数,其值可能无法由操作系统不断更新。
但接下来几行之后:
要获取最新值,请调用Refresh方法。
(这是指FileSystemInfo.Refresh
。)
这有点迟钝,如果它不能完全按照记录的方式工作,我不会感到惊讶。
答案 1 :(得分:1)
“执行”文件(例如便携式可执行文件,如“exe”)和“被访问”文件(例如由另一个exe“”播放“的AVI文件)之间存在区别。
听起来你正在寻找正确的地方,你会想要“LastAccessTime”但是,请注意,访问时间的分辨率取决于文件系统......在NTFS上它是一个完整的日期/时间,在FAT它只是日期(因此如果当天已经访问它将不会改变。)
答案 2 :(得分:0)
嗯,我不太确定是否有文件可以运行,但可能更好的方法是监控媒体播放器以确定视频播放完毕的时间。