随笔 - 103  文章 - 2 评论 - 920 trackbacks - 21
<2008年8月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
31123456


转载请保留链接。
国际管理VS中国国情链接 8-21 13:48

与我联系

搜索

 

常用链接

留言簿(13)

我参与的团队

我的标签

随笔分类

随笔档案

文章分类

相册

最新随笔

积分与排名

  • 积分 - 147372
  • 排名 - 249

最新评论

阅读排行榜

评论排行榜

60天内阅读排行

public class Watcher
{

    
public static void Main()
    
{
    Run();

    }


    [PermissionSet(SecurityAction.Demand, Name
="FullTrust")]
    
public static void Run()
    
{
        
string[] args = System.Environment.GetCommandLineArgs();
 
        
// If a directory is not specified, exit program.
        if(args.Length != 2)
        
{
            
// Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            
return;
        }


        
// Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path 
= args[1];
        
/* 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;

        
// Wait for the user to quit the program.
        Console.WriteLine("Press \'q\' to quit the sample.");
        
while(Console.Read()!='q');
    }


    
// 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);
    }

}

需要注意的两点:
1. 必须设置watcher.EnableRaisingEvents为true才可以开始监视
2. 使用watcher.WaitForChanged(WatcherChangeTypes.Changed,1000)方法时必须指定第二个参数timeout,如果不指定,则程序会一直在等待。

posted on 2007-04-01 20:44 玉开 阅读(477) 评论(0)  编辑 收藏 所属分类: .Net开发经验简单问题

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      


相关链接: