当前位置: 首页 > news >正文

C#读U盘的文件

当把U盘放插入,然后程序自动将U盘的内容复制到本地硬盘

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace U盘更新
{
    public partial class Form1 : Form
    {
        public const int WM_DEVICECHANGE = 0x219;
        public const int DBT_DEVICEARRIVAL = 0x8000;
        public const int DBT_CONFIGCHANGECANCELED = 0x0019;
        public const int DBT_CONFIGCHANGED = 0x0018;
        public const int DBT_CUSTOMEVENT = 0x8006;
        public const int DBT_DEVICEQUERYREMOVE = 0x8001;
        public const int DBT_DEVICEQUERYREMOVEFAILED = 0x8002;
        public const int DBT_DEVICEREMOVECOMPLETE = 0x8004;
        public const int DBT_DEVICEREMOVEPENDING = 0x8003;
        public const int DBT_DEVICETYPESPECIFIC = 0x8005;
        public const int DBT_DEVNODES_CHANGED = 0x0007;
        public const int DBT_QUERYCHANGECONFIG = 0x0017;
        public const int DBT_USERDEFINED = 0xFFFF;

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {

        }
       
        protected override void WndProc(ref Message m)
        {
            try
            {
                if (m.Msg == WM_DEVICECHANGE)
                {
                    switch (m.WParam.ToInt32())
                    {
                        case WM_DEVICECHANGE:
                            break;
                        case DBT_DEVICEARRIVAL://U盘插入
                            DriveInfo[] s = DriveInfo.GetDrives();
                            foreach (DriveInfo drive in s)
                            {
                                if (drive.DriveType == DriveType.Removable)
                                {
                                    listBox1.Items.Add("U盘已插入,盘符为:" + drive.Name.ToString());
                                    break;
                                }
                            }
                            break;
                        case DBT_CONFIGCHANGECANCELED:
                            break;
                        case DBT_CONFIGCHANGED:
                            break;
                        case DBT_CUSTOMEVENT:
                            break;
                        case DBT_DEVICEQUERYREMOVE:
                            break;
                        case DBT_DEVICEQUERYREMOVEFAILED:
                            break;
                        case DBT_DEVICEREMOVECOMPLETE: //U盘卸载
                            break;
                        case DBT_DEVICEREMOVEPENDING:
                            break;
                        case DBT_DEVICETYPESPECIFIC:
                            break;
                        case DBT_DEVNODES_CHANGED:
                            break;
                        case DBT_QUERYCHANGECONFIG:
                            break;
                        case DBT_USERDEFINED:
                            break;
                        default:
                            break;
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            base.WndProc(ref m);
        }

相关文章:

  • 推荐:体验TechEd 2006 Europe Edition
  • 安装Vista前你应该知道的十件事
  • 硕士生与大专生
  • 为什么要注册域名?
  • 详细设计说明书
  • Linux下添加硬盘,分区,格式化
  • 对 Web user controls 和 Web custom controls 的一些建议
  • Asp.net 2.0 使用FormView + ObjectDataSource 或 SqlDataSource 插入记录后 定位到被插入行...
  • 发布一个实用美观的Vista Sidebar Gadget (代表博客园参赛)
  • linux 内存相关~~~~集~~
  • task Scheduler
  • WebLogic Server 性能调优
  • 谈谈工作流
  • VSTS 启动web测试记录器无效
  • 用C#和WMI获取逻辑驱动器详细信息(转)
  • Android交互
  • ES6语法详解(一)
  • JAVA SE 6 GC调优笔记
  • JAVA 学习IO流
  • MQ框架的比较
  • 搞机器学习要哪些技能
  • 工作手记之html2canvas使用概述
  • 函数式编程与面向对象编程[4]:Scala的类型关联Type Alias
  • 好的网址,关于.net 4.0 ,vs 2010
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 判断客户端类型,Android,iOS,PC
  • 提升用户体验的利器——使用Vue-Occupy实现占位效果
  • ​configparser --- 配置文件解析器​
  • ​软考-高级-系统架构设计师教程(清华第2版)【第1章-绪论-思维导图】​
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • # Swust 12th acm 邀请赛# [ A ] A+B problem [题解]
  • (3)llvm ir转换过程
  • (6)STL算法之转换
  • (6)添加vue-cookie
  • (pojstep1.3.1)1017(构造法模拟)
  • (solr系列:一)使用tomcat部署solr服务
  • (差分)胡桃爱原石
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (论文阅读40-45)图像描述1
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (实战篇)如何缓存数据
  • (一)基于IDEA的JAVA基础1
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .net开发时的诡异问题,button的onclick事件无效
  • .net连接oracle数据库
  • .Net下的签名与混淆
  • .Net转前端开发-启航篇,如何定制博客园主题
  • :=
  • @Resource和@Autowired的区别
  • @Transactional 详解
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [20140403]查询是否产生日志
  • [3300万人的聊天室] 作为产品的上游公司该如何?
  • [ajaxupload] - 上传文件同时附件参数值
  • [Android Studio 权威教程]断点调试和高级调试