当前位置: 移动技术网 > IT编程>开发语言>c# > C#如何打开并读取usb的文件目录

C#如何打开并读取usb的文件目录

2019年07月18日  | 移动技术网IT编程  | 我要评论

下面我通过一个小例子并结合一段代码片段给大家展示下,有需要的朋友可以来借鉴下。

界面上拖一个 button 和treeview  ,运行的时候直接插入优盘,单机按钮就会出现目录文件。不过只能在u盘插入,u盘拔出时,才能接收到信息。
1.[c#]代码    

using system;
using system.collections;
using system.collections.generic;
using system.componentmodel;
using system.data;
using system.drawing;
using system.io;
using system.linq;
using system.text;
using system.threading;
using system.threading.tasks;
using system.windows.forms;
 namespace usbtext
{
 public partial class form1 : form
 {
 driveinfo tdriver = null;
 public form1()
 {
 initializecomponent();
 }
 protected override void wndproc(ref message m)
 {
 if (m.msg == 0x0219)//wm_devicechange
 {
 switch (m.wparam.toint32())
 {
  case 0x8000://dbt_devicearrival
  {
  messagebox.show("设备插入");
  string[] dirs = environment.getlogicaldrives(); //取得所有的盘符 
  foreach (string dir in dirs)
  {
   tdriver = new driveinfo(dir);
   if (tdriver.drivetype == drivetype.removable)
   {
   {
   while (tdriver.isready == false)
   {
   thread.sleep(500);
   }
   try
   {
   string pstr = "";
   pstr += "磁盘名称:" + tdriver.name + "\r\n";
   pstr += "磁盘卷标:" + tdriver.volumelabel + "\r\n";
   pstr += "文件系统:" + tdriver.driveformat + "\r\n";
   pstr += "剩余大小:" + tdriver.availablefreespace.tostring() + "\r\n";
   pstr += "总体容量:" + tdriver.totalsize.tostring() + "\r\n";
   pstr += "总体容量:" + tdriver.rootdirectory.tostring() + "\r\n";
   messagebox.show(pstr);
   }
   catch
   {
   messagebox.show("error");
   }
   }
   }
  } 
  break;
  }
  case 0x8004://dbt_deviceremovecomplete
  {
  messagebox.show("设备拔出");
  break;
  }
 }
 }
 base.wndproc(ref m);
 }
 private void addtotreeview(treenode node)
 {
 treeview1.nodes.add(node);
 treeview1.refresh();
 }
 internal void loadfolderfilelist(string path, treenode nodes)
 {
 string[] dirs = directory.getdirectories(path);
 string[] files = directory.getfiles(path);
 for (int i = 0; i < dirs.length; i++)
 {
 string[] info = new string[4];
 directoryinfo di = new directoryinfo(dirs[i]);
 treenode node = new treenode(di.name);
 node.tag = di.fullname;
 try
 {
  if (di.getdirectories().length > 0 || di.getfiles().length > 0)
  {
  loadfolderfilelist(di.fullname, node);
  }
  else
  {
  continue;
  }
 }
 catch
 {
  continue;
 }
 nodes.nodes.add(node);
 }
 for (int i = 0; i < files.length; i++)
 {
 fileinfo fi = new fileinfo(files[i]);
 treenode node = new treenode(fi.name);
 node.tag = fi.fullname;
 nodes.nodes.add(node);
 }
 }
 private void button1_click(object sender, eventargs e)
 {
 if (tdriver != null)
 {
 treenode node = new treenode();
 loadfolderfilelist(tdriver.rootdirectory.tostring(), node);
 treeview1.nodes.add(node);
 }
 }
 }
}

通过以上代码可以实现打开并读取usb的文件目录,希望大家能够喜欢。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网