C#~使用FileSystemWatcher来监视文件系统的变化-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

C#~使用FileSystemWatcher来监视文件系统的变化

简介:

对于一个文件夹的改变,C#这边有自己的类来实现,我们不需要关心它的内部实现机制,不需要关心它底层调用哪些API,我们只需要关心如何去调用它,如何让它帮助我们记录文件夹的修改情况即可。

   #region 监视文件夹的变化
            FileSystemWatcher watcher = new FileSystemWatcher();
            watcher.Path = "f:\\";
            watcher.NotifyFilter =//被监控的方面
               NotifyFilters.LastWrite |
               NotifyFilters.FileName |
               NotifyFilters.DirectoryName;

            // 订阅一些事件,当它被触发时(.net(windows)底层触发它,我们不用管),执行我们的方法
            watcher.Changed += (object source, FileSystemEventArgs e) =>
            {
                Console.WriteLine("文件{0}已经被修改,修改类型{1}", e.FullPath, e.ChangeType.ToString());
            };
            watcher.Created += (object source, FileSystemEventArgs e) =>
            {
                Console.WriteLine("文件{0}被建立", e.FullPath);
            };
            watcher.Deleted += (object source, FileSystemEventArgs e) =>
            {
                Console.WriteLine("文件{0}已经被删除", e.FullPath);
            };
            watcher.Renamed += (object source, RenamedEventArgs e) =>
            {
                Console.WriteLine("文件{0}的名称已经从{1}变成了{2}", e.OldFullPath, e.OldName, e.Name);
            };

            // 为true表示开启FileSystemWatcher组件,反之我们的监控将不启作用
            watcher.EnableRaisingEvents = true;
            #endregion

另外,告诉大家一个 xor异或运算的使用技巧,就是它可以在不引入第三个变量的情况下,交替两个变量的值,你的变量可以是数值,也可以是字符,如果是字符,我们需要使用它的hashcode值进行xor运算。

           #region xor两个变量交换
            int a = 2;
            int b = 3;
            Console.WriteLine("a={0}", a);
            Console.WriteLine("b={0}", b);
            a = a ^ b ^ (b = a);
            Console.WriteLine("a={0}", a);
            Console.WriteLine("b={0}", b);
            #endregion

结果如图:

本文转自博客园张占岭(仓储大叔)的博客,原文链接:C#~使用FileSystemWatcher来监视文件系统的变化,如需转载请自行联系原博主。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章
最新文章
相关文章