对不起, 我不确定最佳标题,但我希望每个人都理解。
我希望有这样的代码
foreach (var path in locationsToMonitor)
{
MessageBox.Show(path.ToString());
watchPath(path, fileWatchNumber);
fileWatchNumber ++;
}
private void watchPath(string path, short fileWatchNumber)
{
string fileSystemWatcherName = "FileMonitor" + fileWatchNumber.ToString();
FileSystemWatcher fileSystemWatcherName = new FileSystemWatcher();
FileMonitor.SynchronizingObject = this;
FileMonitor.Path = locationsToMonitor.First();
FileMonitor.IncludeSubdirectories = true;
FileMonitor.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
FileMonitor.Filter = "*.*";
FileMonitor.Changed += new FileSystemEventHandler(this.FileMonitor_Changed);
FileMonitor.Created += new FileSystemEventHandler(this.FileMonitor_Changed);
FileMonitor.Renamed += new RenamedEventHandler(FileMonitor_OnRenamed);
FileMonitor.EnableRaisingEvents = true;
}
基本上,我想发起
new FileSystemWatcher();
使用我的字符串fileSystemWatcherName的值,以便我可以根据文本文件中列出的路径数量动态创建新的fileSystemWatchers。
所以,它会创建FileMonitor1,FileMonitor2等
更新:
我想要动态创建它的原因是我希望我的程序要做的是将文本文件作为数组打开。对于该文本文件中的每个换行项,我想创建一个fileSystemWatcher。唯一的问题是,我不知道文件中是否有一行或50行。
我阅读了有关使用词典的帖子,但我不太清楚如何在此处应用词典。
我尝试了这个,但是,根据编译器它是无效的代码。
Dictionary<string, string> fileSystemWatchers = new Dictionary<string, string>();
fileSystemWatchers.Add("fileMonitor" + num.ToString(), "");
FileSystemWatcher fileSystemWatchers["fileMonitor1"] = new FileSystemWatcher();