• C# FileSystemWatcher


    using System.IO;

    //file system watcher object.
            private FileSystemWatcher watcher;
            
    private delegate void UpdateWatchTextDelegate(string newText);

            
    public void UpdateWatchText(string newText)
            {
                lblWatch.Text 
    = newText;
            }

            
    public Form1()
            {
                InitializeComponent();

                
    this.watcher = new FileSystemWatcher();
                
    this.watcher.Deleted += new FileSystemEventHandler(watcher_Deleted);
                
    this.watcher.Renamed += new RenamedEventHandler(watcher_Renamed);
                
    this.watcher.Changed += new FileSystemEventHandler(watcher_Changed);
                
    this.watcher.Created += new FileSystemEventHandler(watcher_Created);
            }

            
    void watcher_Created(object sender, FileSystemEventArgs e)
            {
                
    //throw new NotImplementedException();
                try
                {
                    StreamWriter sw 
    = new StreamWriter("c:\\Log.txt"true);
                    sw.WriteLine(
    "File: {0} Created", e.FullPath);
                    sw.Close();
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Wrote create event to log");
                }
                
    catch (IOException)
                {
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Error Writing to log");
                }
            }

            
    void watcher_Changed(object sender, FileSystemEventArgs e)
            {
                
    //throw new NotImplementedException();
                try
                {
                    StreamWriter sw 
    = new StreamWriter("c:\\Log.txt"true);
                    sw.WriteLine(
    "File: {0} {1}", e.FullPath, e.ChangeType.ToString());
                    sw.Close();
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Wrote change event to log");
                }
                
    catch (IOException)
                {
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Error Writing to log");
                }
            }

            
    void watcher_Renamed(object sender, RenamedEventArgs e)
            {
                
    //throw new NotImplementedException();
                try
                {
                    StreamWriter sw 
    = new StreamWriter("c:\\Log.txt"true);
                    sw.WriteLine(
    "File renamed from {0} to {1}", e.OldName, e.FullPath);
                    sw.Close();
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Wrote renamed event to log");
                }
                
    catch(IOException)
                {
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Error Writing to log");
                }
            }

            
    void watcher_Deleted(object sender, FileSystemEventArgs e)
            {
                
    //throw new NotImplementedException();
                try
                {
                    StreamWriter sw 
    = new StreamWriter("c:\\Log.txt"true);
                    sw.WriteLine(
    "File: {0} Deleted", e.FullPath);
                    sw.Close();
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Wrote delete event to log");
                }
                
    catch (IOException)
                {
                    
    this.BeginInvoke(new UpdateWatchTextDelegate(UpdateWatchText), "Error Writing to log");
                }
            }

            
    private void cmdBrowse_Click(object sender, EventArgs e)
            {
                
    if (FileDialog.ShowDialog() != DialogResult.Cancel)
                {
                    txtLocation.Text 
    = FileDialog.FileName;
                    cmdWatch.Enabled 
    = true;
                }
            }

            
    private void cmdWatch_Click(object sender, EventArgs e)
            {
                watcher.Path 
    = Path.GetDirectoryName(txtLocation.Text);//监控路径(文件夹)
                watcher.Filter = "*.*" ;//如果filter为文件名称则表示监控该文件,如果为*.txt则表示要监控指定目录当中的所有.txt文件
                watcher.NotifyFilter = NotifyFilters.LastWrite |
                    NotifyFilters.FileName 
    |
                    NotifyFilters.Size;
                lblWatch.Text 
    = "Watching " + txtLocation.Text;

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

    青苹果Web应用商店 https://webapp.taobao.com/

    PHP/ASP.NET/ASP/UCHOME/DISCUZ! X系列网站开发,详细需求联系QQ:8511978

  • 相关阅读:
    使用vue-cli4 F5刷新 报错:Uncaught SyntaxError: Unexpected token <
    visual stuido 删除虚拟目录
    visual studio2017 使用内联变量 编译失败 但不显示错误信息
    spring boot 整合CXF创建web service
    .net 解析以竖线,美元符等分割符分割的字符串为实体
    c# 动态构造实体属性的lambda Expression表达式
    spring boot 创建web service及调用
    JPA使用log4jdbc输出sql日志
    JPA 使用log4j2输出SQL日志到文件
    JPA 使用logback输出SQL日志到文件
  • 原文地址:https://www.cnblogs.com/Dicky/p/CSharp_FileSystemWatcher.html
Copyright © 2020-2023  润新知