Visual Studio 2010 ソリューション フォルダーが多数含まれるフォルダーがあります。
Windows エクスプローラーで、「更新日」の降順でフォルダーを並べ替えています。
どこかのソリューション フォルダーの奥深くにある C# ファイルを変更した場合、そのソリューション フォルダーをエクスプローラー リストの一番上に移動したいと思います。つまり、そのフォルダーを「変更済み」と見なしたいと思います。
この動作を可能にする Visual Studio の拡張機能はありますか? または、最近変更されたソリューションが Windows エクスプローラーで最初に表示されるように、ソリューションを並べ替えるより簡単な方法はありますか?
FileSystemWatcher
ファイルへの変更についてフォルダーを監視し、*.cs
対応する VS ソリューション フォルダーにアクセスするために使用するこの C# プログラムをまとめました。ただし、この呼び出し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();
}
}
}
これを達成する方法についての提案は大歓迎です!