我有一个文件夹,里面有一堆 Visual Studio 2010 解决方案文件夹。
在 Windows 资源管理器中,我按“修改日期”的降序对文件夹进行排序。
如果我在某处的解决方案文件夹中修改 C# 文件,我希望该解决方案文件夹移动到资源管理器列表的顶部。即,我希望将该文件夹视为“已修改”。
是否有启用此行为的 Visual Studio 扩展?或者是否有更直接的方法来对解决方案进行排序,以便最近修改的解决方案首先出现在 Windows 资源管理器中?
我将这个 C# 程序放在一起,该程序用于FileSystemWatcher
监视文件夹中的文件更改*.cs
并触及它对应的 VS 解决方案文件夹。但是,调用Directory.SetLastWriteTime(path, DateTime.Now)
会导致异常;看来,当 VS 打开解决方案时,该目录被锁定,SetLastWriteTime
因此无法更新时间。
using System;
using System.IO;
namespace MyDocumentsWatcher
{
class Program
{
static void Main(string[] args)
{
var watcher =
new FileSystemWatcher()
{
Path = "C:/Users/dharmatech/Documents",
Filter = "*.cs",
NotifyFilter =
NotifyFilters.LastWrite |
NotifyFilters.FileName |
NotifyFilters.DirectoryName,
IncludeSubdirectories = true,
EnableRaisingEvents = true
};
watcher.Changed += (s, e) =>
{
Console.WriteLine("{0} {1}", e.ChangeType, e.Name);
var path = e.FullPath;
while (true)
{
Console.WriteLine(path);
if (Path.GetDirectoryName(path) == @"C:\Users\dharmatech\Documents")
{
Directory.SetLastWriteTime(path, DateTime.Now);
break;
}
else
path = Path.GetDirectoryName(path);
System.Threading.Thread.Sleep(1000);
}
};
Console.ReadLine();
}
}
}
欢迎任何有关如何实现这一目标的建议!