我编写了以下代码。
[XmlRoot("myxml")]
public class myxml
{
[XmlElement("one")]
public string one { get; set; }
[XmlElement("two")]
public string two { get; set; }
}
class Program
{
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);
}
//
static void Main(string[] args)
{
myxml m = new myxml();
m.one = "111";
m.two = "222";
FileSystemWatcher watcher = new FileSystemWatcher(@"c:\", "myxml.xml");
watcher.Changed += new FileSystemEventHandler(OnChanged);
FileStream fs = new FileStream(@"c:\myxml.xml", FileMode.Open);
XmlSerializer x = new XmlSerializer(m.GetType());
x.Serialize(fs, m);
fs.Close();
}
}
现在我认为在以下行之后 OnChanged 事件将被调用,但没有...
x.Serialize(fs, m);
此行之后也没有发生任何事情
fs.Close();
有什么想法吗?
最佳答案
您必须将 EnableRaisingEvents 设置为 true 才能开始引发事件。
关于c# - FileSystemWatcher 未调用更改事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10109582/