C#如何打开并读取usb的文件目录
下面我通过一个小例子并结合一段代码片段给大家展示下,有需要的朋友可以来借鉴下。
界面上拖一个button和treeview ,运行的时候直接插入优盘,单机按钮就会出现目录文件。不过只能在u盘插入,U盘拔出时,才能接收到信息。
1.[C#]代码
usingSystem; usingSystem.Collections; usingSystem.Collections.Generic; usingSystem.ComponentModel; usingSystem.Data; usingSystem.Drawing; usingSystem.IO; usingSystem.Linq; usingSystem.Text; usingSystem.Threading; usingSystem.Threading.Tasks; usingSystem.Windows.Forms; namespaceusbText { publicpartialclassForm1:Form { DriveInfoTdriver=null; publicForm1() { InitializeComponent(); } protectedoverridevoidWndProc(refMessagem) { if(m.Msg==0x0219)//WM_DEVICECHANGE { switch(m.WParam.ToInt32()) { case0x8000://DBT_DEVICEARRIVAL { MessageBox.Show("设备插入"); string[]dirs=Environment.GetLogicalDrives();//取得所有的盘符 foreach(stringdirindirs) { Tdriver=newDriveInfo(dir); if(Tdriver.DriveType==DriveType.Removable) { { while(Tdriver.IsReady==false) { Thread.Sleep(500); } try { stringPSTR=""; 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; } case0x8004://DBT_DEVICEREMOVECOMPLETE { MessageBox.Show("设备拔出"); break; } } } base.WndProc(refm); } privatevoidAddToTreeView(TreeNodenode) { treeView1.Nodes.Add(node); treeView1.Refresh(); } internalvoidLoadFolderFileList(stringpath,TreeNodenodes) { string[]dirs=Directory.GetDirectories(path); string[]files=Directory.GetFiles(path); for(inti=0;i<dirs.Length;i++) { string[]info=newstring[4]; DirectoryInfodi=newDirectoryInfo(dirs[i]); TreeNodenode=newTreeNode(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(inti=0;i<files.Length;i++) { FileInfofi=newFileInfo(files[i]); TreeNodenode=newTreeNode(fi.Name); node.Tag=fi.FullName; nodes.Nodes.Add(node); } } privatevoidbutton1_Click(objectsender,EventArgse) { if(Tdriver!=null) { TreeNodenode=newTreeNode(); LoadFolderFileList(Tdriver.RootDirectory.ToString(),node); treeView1.Nodes.Add(node); } } } }
通过以上代码可以实现打开并读取usb的文件目录,希望大家能够喜欢。