以下の C# コードを使用して、ファイル システムのすべての変更 (ファイルの名前変更や作成など) をキャッチしましたが、うまく機能します。しかし、パスを「D:\」から「\\ServerName\folder」に変更すると、プログラムが機能しなくなります。しかし、MSDN FileSystemWatcher クラスの説明では悲しい:「...ローカル コンピューター、ネットワーク ドライブ、またはリモート コンピューター上のファイルを監視するコンポーネントを作成できます...」 .
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
namespace consoleWatcher
{
class Program
{
static void Main(string[] args)
{
FileSystemWatcher myWatcher = new FileSystemWatcher("D:\\");
myWatcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
myWatcher.Changed += new FileSystemEventHandler(OnChanged);
myWatcher.Created += new FileSystemEventHandler(OnChanged);
myWatcher.Deleted += new FileSystemEventHandler(OnChanged);
myWatcher.Renamed += new RenamedEventHandler(OnRenamed);
myWatcher.IncludeSubdirectories = true;
myWatcher.EnableRaisingEvents = true;
Console.Read();
}
private static void OnChanged(object source, FileSystemEventArgs e)
{
// Specify what is done when a file is changed, created, or deleted.
Console.WriteLine("File: " + e.FullPath + " " + e.ChangeType);
}
private static void OnRenamed(object source, RenamedEventArgs e)
{
// Specify what is done when a file is renamed.
Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
}
}
}