How to set filter for FileSystemWatcher for multiple file types?

后端 未结 6 1132
醉酒成梦
醉酒成梦 2020-12-08 13:16

Everywhere I find these two lines of code used to set filter for file system watcher in samples provided..

FileSystemWatcher watcher = new FileSystemWatcher(         


        
6条回答
  •  广开言路
    2020-12-08 13:35

    There is a workaround.

    The idea is to watch for all extensions and then in the OnChange event, filter out to desired extensions:

    FileSystemWatcher objWatcher = new FileSystemWatcher(); 
    objWatcher.Filter = "*.*"; 
    objWatcher.Changed += new FileSystemEventHandler(OnChanged); 
    
    private static void OnChanged(object source, FileSystemEventArgs e) 
    { 
        // get the file's extension 
        string strFileExt = getFileExt(e.FullPath); 
    
        // filter file types 
        if (Regex.IsMatch(strFileExt, @"\.txt)|\.doc", RegexOptions.IgnoreCase)) 
        { 
            Console.WriteLine("watched file type changed."); 
        } 
    } 
    

提交回复
热议问题