首页 > 编程 > C# > 正文

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

2019-10-29 21:40:33
字体:
来源:转载
供稿:网友

这篇文章主要介绍了用C#语言实现打开并读取usb的文件目录,但是实现此功能要注意一点必须在u盘插入才能接受到信息,需要的朋友可以参考下

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

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

1.[C#]代码

 

 
  1. using System; 
  2. using System.Collections; 
  3. using System.Collections.Generic; 
  4. using System.ComponentModel; 
  5. using System.Data; 
  6. using System.Drawing; 
  7. using System.IO; 
  8. using System.Linq; 
  9. using System.Text; 
  10. using System.Threading; 
  11. using System.Threading.Tasks; 
  12. using System.Windows.Forms; 
  13. namespace usbText 
  14. public partial class Form1 : Form 
  15. DriveInfo Tdriver = null
  16. public Form1() 
  17. InitializeComponent(); 
  18. protected override void WndProc(ref Message m) 
  19. if (m.Msg == 0x0219)//WM_DEVICECHANGE 
  20. switch (m.WParam.ToInt32()) 
  21. case 0x8000://DBT_DEVICEARRIVAL 
  22. MessageBox.Show("设备插入"); 
  23. string[] dirs = Environment.GetLogicalDrives(); //取得所有的盘符  
  24. foreach (string dir in dirs) 
  25. Tdriver = new DriveInfo(dir); 
  26. if (Tdriver.DriveType == DriveType.Removable) 
  27. while (Tdriver.IsReady == false
  28. Thread.Sleep(500); 
  29. try 
  30. string PSTR = ""
  31. PSTR += "磁盘名称:" + Tdriver.Name + "/r/n"
  32. PSTR += "磁盘卷标:" + Tdriver.VolumeLabel + "/r/n"
  33. PSTR += "文件系统:" + Tdriver.DriveFormat + "/r/n"
  34. PSTR += "剩余大小:" + Tdriver.AvailableFreeSpace.ToString() + "/r/n"
  35. PSTR += "总体容量:" + Tdriver.TotalSize.ToString() + "/r/n"
  36. PSTR += "总体容量:" + Tdriver.RootDirectory.ToString() + "/r/n"
  37. MessageBox.Show(PSTR); 
  38. catch 
  39. MessageBox.Show("error"); 
  40. }  
  41. break
  42. case 0x8004://DBT_DEVICEREMOVECOMPLETE 
  43. MessageBox.Show("设备拔出"); 
  44. break
  45. base.WndProc(ref m); 
  46. private void AddToTreeView(TreeNode node) 
  47. treeView1.Nodes.Add(node); 
  48. treeView1.Refresh(); 
  49. internal void LoadFolderFileList(string path, TreeNode nodes) 
  50. string[] dirs = Directory.GetDirectories(path); 
  51. string[] files = Directory.GetFiles(path); 
  52. for (int i = 0; i < dirs.Length; i++) 
  53. string[] info = new string[4]; 
  54. DirectoryInfo di = new DirectoryInfo(dirs[i]); 
  55. TreeNode node = new TreeNode(di.Name); 
  56. node.Tag = di.FullName; 
  57. try 
  58. if (di.GetDirectories().Length > 0 || di.GetFiles().Length > 0) 
  59. LoadFolderFileList(di.FullName, node); 
  60. else 
  61. continue
  62. catch 
  63. continue
  64. nodes.Nodes.Add(node); 
  65. for (int i = 0; i < files.Length; i++) 
  66. FileInfo fi = new FileInfo(files[i]); 
  67. TreeNode node = new TreeNode(fi.Name); 
  68. node.Tag = fi.FullName; 
  69. nodes.Nodes.Add(node); 
  70. private void button1_Click(object sender, EventArgs e) 
  71. if (Tdriver != null
  72. TreeNode node = new TreeNode(); 
  73. LoadFolderFileList(Tdriver.RootDirectory.ToString(), node); 
  74. treeView1.Nodes.Add(node); 

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表