• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#采用FileSystemWatcher实现监视磁盘文件变更的方法

C#采用FileSystemWatcher实现监视磁盘文件变更的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#filesystemwatcher,filesystemwatcher,filesystemwatcher1,c#遍历磁盘,c#获取磁盘等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

本文实例讲述了C#采用FileSystemWatcher实现监视磁盘文件变更的方法。分享给大家供大家参考。具体实现方法如下:

简化需求:有一个简化了的需求是这样的:有一个拍照程序在运行,一旦抓拍之后则将图片文件存储至某目录,然后图片要上传至远程服务器并update数据库。

原需求:原先的需求是这样的:有一台PDA扫码枪,一个IP照相机放置在下线区传送带上方。当PDA扫描箱子上的条码,触发相机拍照,将图片流传至远端服务器,找到对应的条码,将图片存储并更新数据库。

然而我不知道PDA扫描的瞬间如何与IP相机通信(蓝牙或WLAN?),其实关键是我不知道怎样使用IP相机的外触发功能,增加蓝牙触发器?也不知道怎样hack或ssh到这个相机(应该是linux的吧),所以只能先使用简化需求的版本。

而简化需求的版本,关键就是监视文件夹内容变化与上传文件流。

昨天问了下度娘,C#中的监视组件名字叫做FileSystemWatcher。

于是写了个demo,可以监视所有逻辑盘或者某个文件夹。

使用方法:

1.直接打开是监视所有逻辑磁盘文件变化。

2.或者传递参数,监视某一路径文件变化。如图,监视e盘

源代码如下:

namespace FileSystemWatcherDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            //watcher组
            FileSystemWatcher[] watchers;

            //若未传递参数,则监视所有文件系统,包括CD-ROM(不可用),可移动磁盘(不可用)等
            if (args.Length == 0)
            {
                string[] drivers = Directory.GetLogicalDrives();
                watchers = new FileSystemWatcher[drivers.Length];

                for (int i = 0; i < drivers.Length; i++)
                {
                    try
                    {
                        watchers[i] = new FileSystemWatcher { Path = drivers[i] };
                    }
                    catch (Exception ex)
                    {
                        Trace.TraceWarning(ex.Message);
                    }
                }
            }
            else
            {
                watchers = new FileSystemWatcher[1];
                watchers[0] = new FileSystemWatcher { Path = args[0] };
            }

            foreach (FileSystemWatcher w in watchers)
            {
                if (w == null) continue;

                w.Filter = "*";
                w.IncludeSubdirectories = true;
                w.EnableRaisingEvents = true;

                w.Created += onFileSystem_Changed;
                w.Deleted += onFileSystem_Changed;
                w.Changed += onFileSystem_Changed;
                w.Renamed += watcher_Renamed;
            }

            Console.ReadLine();
        }

        #region [ 检测文件是否占用 ]
        /// <summary>
        /// 检测文件是否占用
        /// </summary>
        /// <param name="filename"></param>
        /// <returns></returns>
        static bool IsFileReady(string filename)
        {
            var fi = new FileInfo(filename);
            FileStream fs = null;
            try
            {
                fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.None);
                return true;
            }
            catch (IOException)
            {
                return false;
            }

            finally
            {
                if (fs != null)
        

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#采用FileSystemWatcher实现监视磁盘文件变更的方法
  • C#的FileSystemWatcher用法实例详解
  • c#使用filesystemwatcher实时监控文件目录的添加和删除
  • c#使用filesystemwatcher监视文件系统的变化
  • c#实现数据同步的方法(使用文件监控对象filesystemwatcher)

相关文章

  • 2017-05-28C#截取中英文混合指定长度字符串实例
  • 2017-05-28C#操作数据库中存取图片文件的方法
  • 2017-05-28C#控制台下测试多线程的方法
  • 2017-05-28picturebox加载图片的三种方法与网站验证码的抓取
  • 2017-05-28在WPF中动态加载XAML中的控件实例代码
  • 2017-05-28浅谈C#各种数组直接的数据复制/转换
  • 2017-05-28C#操作SQLite方法实例详解
  • 2017-05-28C#浅拷贝和深拷贝实例解析
  • 2017-05-28C#中读写INI文件的方法例子
  • 2017-05-28C#设置输入法实例分析

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • .NET连接MongoDB数据库实例教程
    • 浅谈C# winForm 窗体闪烁的问题
    • C#控制Excel Sheet使其自适应页宽与列宽的方法
    • C#托管堆对象实例包含内容分析
    • c# 计算时间间隔的简单方法(推荐)
    • C#索引属性用法实例分析
    • C#函数式编程中的递归调用之尾递归详解
    • C#操作Access通用类实例
    • C#通过WIN32 API实现嵌入程序窗体
    • C#实现下载网页HTML源码的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有