非常感谢@Progrock指着我检查的目标文件夹中的文件最后访问时间。这是我必须做的。
确保捕获上次访问的时间是由Windows中设置(见Directory.GetFiles keeping the last access time)
Process.Start("fsutil", "behavior set disablelastaccess 0").WaitForExit();
还需要重新启动IIS停止内存中的文件的任何缓存
Process.Start("IISRESET").WaitForExit();
上的FileInfo刷新需要被执行,以确保您得到正确的上次访问时间(见How can System.IO.FileSystemInfo.Refresh be used)。
这导致了下面的代码...
var start = DateTime.UtcNow;
Process.Start("fsutil", "behavior set disablelastaccess 0").WaitForExit();
Process.Start("IISRESET").WaitForExit();
//do work that will access folder. i.e. access IIS web pages
var files = Directory.GetFiles(iisPath, "*.*", SearchOption.AllDirectories).ToList();
files = files.Where(x =>
{
var fileInfo = new FileInfo(x);
fileInfo.Refresh();
return fileInfo.LastAccessTimeUtc >= start;
}).ToList();
我可以使用此文件列表,找出所有.ASP和.PHP,并通过在页面请求的IIS服务器进行访问的任何其他文件。
Php允许类名的用户映射以任何方式通过spl_autoload_register文件路径(自动加载)。否则,我会说寻找包括/需要(_once)线。 – Progrock
焦虑问题:http://stackoverflow.com/help/on-topic – CD001
不会涵盖所有内容,但最近的最近访问文件时间? – Progrock