当前位置:  开发笔记 > 编程语言 > 正文

文件更改时的通知?

如何解决《文件更改时的通知?》经验,为你挑选了3个好方法。

是否有一些机制可以在光盘上修改文件时通知我(在C#中)?



1> Dirk Vollmar..:

你可以使用这FileSystemWatcher门课.

public void CreateFileWatcher(string path)
{
    // Create a new FileSystemWatcher and set its properties.
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = path;
    /* Watch for changes in LastAccess and LastWrite times, and 
       the renaming of files or directories. */
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite 
       | NotifyFilters.FileName | NotifyFilters.DirectoryName;
    // Only watch text files.
    watcher.Filter = "*.txt";

    // Add event handlers.
    watcher.Changed += new FileSystemEventHandler(OnChanged);
    watcher.Created += new FileSystemEventHandler(OnChanged);
    watcher.Deleted += new FileSystemEventHandler(OnChanged);
    watcher.Renamed += new RenamedEventHandler(OnRenamed);

    // Begin watching.
    watcher.EnableRaisingEvents = true;
}

// Define the event handlers.
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);
}


谢谢你的这个例子.MSDN几乎相同[这里](http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.filter%28v=vs.100%29.aspx).此外,有些人可能想要观看整个目录树 - 使用`watcher.IncludeSubdirectories = true;`来实现这一点.
谢谢你的好例子.我还要指出,如果您正在寻找阻止(同步)方式来监视更改,可以在FileSystemWatcher上使用WaitForChanged方法.

2> Mihai Limbăș..:

那将是System.IO.FileSystemWatcher.



3> Arnshea..:

使用FileSystemWatcher.您只能过滤修改事件.

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有