代码如下:
//开始监控
void Button2Click(object sender, EventArgs e)
{
if(textBox1.Text == "")
{
MessageBox.Show("请选择监控目录");
return;
}
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = textBox1.Text;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.txt";
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Deleted += new FileSystemEventHandler(watcher_Changed);
watcher.Created += new FileSystemEventHandler(watcher_Created);
watcher.Renamed += new RenamedEventHandler(watcher_Renamed);
if(button2.Text == "开始监控")
{
watcher.EnableRaisingEvents = true;
button2.Text = "停止监控";
}
else if(button2.Text == "停止监控")
{
watcher.EnableRaisingEvents = false;
button2.Text = "开始监控";
}
}
void watcher_Created(object sender, RenamedEventArgs e)
{
listboxAdd listboxadd = delegate()
{
listBox1.Items.Add("创建文件:" +e.FullPath);
};
listBox1.Invoke(listboxadd);
}
void watcher_Deleted(object sender, RenamedEventArgs e)
{
listboxAdd listboxadd = delegate()
{
listBox1.Items.Add("删除文件:" +e.FullPath);
};
listBox1.Invoke(listboxadd);
}
void watcher_Renamed(object sender, RenamedEventArgs e)
{
listboxAdd listboxadd = delegate()
{
listBox1.Items.Add("文件:" + e.OldFullPath + "更名为:" +e.FullPath);
};
listBox1.Invoke(listboxadd);
}

void watcher_Changed(object sender, FileSystemEventArgs e)
{
listboxAdd listboxadd = delegate()
{
listBox1.Items.Add("修改了文件:"+ e.FullPath);
};
listBox1.Invoke(listboxadd);
}
报错:
“watcher_Created”的重载均与委托“System.IO.FileSystemEventHandler”不匹配 (CS0123) - D:\c#\SharpDevelop Projects\FileSystemWatcher类\FileSystemWatcher类\MainForm.cs:55,23

解决方案 »

  1.   

    方法的参数不对,不同的事件有不同的方法参数watcher.Created += new FileSystemEventHandler(watcher_Created);
    把+=和后面人都去掉按2次Tab让VS自动生成个方法去
      

  2.   

    public FileWatchClass(string WatcherPath)   
      {   
      FileWatcher.Filter = "*.*";   
      FileWatcher.Path = WatcherPath;   
      FileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed);   
      FileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed);   
      FileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created);   
      FileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted);   
      FileWatcher.IncludeSubdirectories = true;   
      FileWatcher.EnableRaisingEvents = true;   
      }     void FileWatcher_Deleted(object sender, FileSystemEventArgs e)   
      {   
      Console.WriteLine(""+e.ChangeType+""+e.FullPath+" 删除 ");   
      }   
      

  3.   

    Created += new FileSystemEventHandler(fsw_Changed);
    void fsw_Changed(object sender, FileSystemEventArgs e)
    {
    }