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

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

界面上拖一个 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的文件目录,希望大家能够喜欢。

(0)

相关推荐

  • C#获取全部目录和文件的简单实例

    复制代码 代码如下: public class FileAccess{ //储存所有文件夹名private ArrayList dirs; public FileAccess(){dirs = new ArrayList();} //获取所有文件名private ArrayList GetFileName(string dirPath){ArrayList list = new ArrayList(); if (Directory.Exists(dirPath)){list.AddRange(D

  • C#删除文件目录或文件的解决方法

    复制代码 代码如下: /// 删除文件和目录public class Cleaner
{
   ///   /// 删除指定目录以及该目录下所有文件   ///   /// 欲删除文件或者目录的路径
     public static void Clean ( string dir )
{
          CleanFiles ( dir );//第一次删除文件
          CleanFiles ( dir );//第二次删除目录
     }

private static vo

  • C#操作目录与文件的方法步骤

    • 创建目录和文件1.通过Path类的Combine方法可以合并路径. 复制代码 代码如下: string activeDir = @"C:\myDir";string newPath = System.IO.Path.Combine(activeDir, "mySubDirOne"); 2.目录的创建.创建目录时如果目录已存在,则不会重新创建目录,且不会报错.创建目录时会自动创建路径中各级不存在的目录.(1)通过Directory类的CreateDirectory

  • c#同步两个子目录文件示例分享 两个文件夹同步

    复制代码 代码如下: using System;using System.Collections.Generic;using System.IO;using System.Text;using System.Text.RegularExpressions;namespace AutoSync{    public class NewDirectory    {        public static Dictionary<string,string> GetDirectories(strin

  • C#实现最完整的文件和目录操作类实例

    本文实例讲述了C#实现最完整的文件和目录操作类.分享给大家供大家参考.具体如下: using System; using System.Text; using System.IO; namespace HelloCsharp.Utilities { /// <summary> /// 文件操作类 /// </summary> public static class DirFile { #region 检测指定目录是否存在 /// <summary> /// 检测指定目录

  • C#计算两个文件的相对目录算法的实例代码

    楼主大菜鸟一只,第一次写技术博客,如果有概念错误或代码不规范的地方,还请各位多多批评指正.话不多说,来看题: 前一阵子开发了一个用户控件,里面调用了很多css,js等资源文件,而引用控件的页面所在目录是不同的.问题出来了:如果目录不同,那么控件里引用css,js资源文件的路径也会相应变化.现在已知两个文件相对于网站根目录的路径,如何计算相对路径呢?请看代码: 复制代码 代码如下: public string GetRelativePath(string path1, string path2){

  • C#遍历指定目录下所有文件的方法

    本文实例讲述了C#遍历指定目录下所有文件的方法.分享给大家供大家参考.具体分析如下: 先通过DirectoryInfo打开指定的目录,然后通过GetFiles()方法读取文件夹下的所有文件 DirectoryInfo di = new DirectoryInfo(@"C:\mydir"); Console.WriteLine("Directory: {0}", di.FullName); foreach (FileInfo file in di.GetFiles()

  • C#实现Zip压缩目录中所有文件的方法

    本文实例讲述了C#实现Zip压缩目录中所有文件的方法.分享给大家供大家参考.具体实现方法如下: using System; using System.IO; using System.Collections; using System.IO.Compression; using System.Collections.Generic; class FolderZip { private const long BUFFER_SIZE = 20480; static void main(string[

  • C#常用目录文件操作类实例

    本文实例讲述了C#常用目录文件操作类.分享给大家供大家参考.具体分析如下: 这个c#类封装了常用的目录操作,包括列出目录下的文件.检测目录是否存在.得到目录下的文件列表.检测目录是否为空.查找目录下的文件等等功能 using System; using System.Text; using System.IO; namespace DotNet.Utilities { /// <summary> /// 文件操作夹 /// </summary> public static clas

  • C#实现安全删除文件目录的方法

    本文实例讲述了C#实现安全删除文件目录的方法.分享给大家供大家参考.具体分析如下: 1. 创建文件夹 (简单,没多考虑) 2. 删除所建文件夹:为防止删除过程中有其他进程引用该文件夹中文件,增加了对此意外情况的考虑. 在本例中,若删除过程中被其他进程引用,等待并循环5次尝试再次删除操作.长时间无法被删除,则删除文件目录失败 using System; using System.IO; namespace Retry { class Program { static void Main(strin

  • C#读取目录下所有指定类型文件的方法

    本文实例讲述了C#读取目录下所有指定类型文件的方法.分享给大家供大家参考.具体分析如下: 首先要引入命名空间:using System.IO; 再写读取方法: DirectoryInfo dir = new DirectoryInfo(path); //path为某个目录,如: "D:\Program Files" FileInfo[] inf = dir.GetFiles(); foreach (FileInfo finf in inf) { if( finf.Extension.E

  • C#文件目录操作方法汇总

    需要 using System.IO; 1) 相对路径转绝对路径 string fullfolder = HttpContext.Current.Server.MapPath(folder); 2) 文件移动(改名) File.Move(Server.MapPath("/a.txt"), Server.MapPath("/b.txt")); 3) 文件复制 File.Copy(Server.MapPath("/a.txt"), Server.Ma

  • C#获取项目指定目录下文件的方法

    本文实例讲述了C#获取项目指定目录下文件的方法.分享给大家供大家参考.具体如下: public List<FileInfo> GetFiles() { string path = string.Concat(System.AppDomain.CurrentDomain.BaseDirectory,"Files\\"); //获取项目物理路径 string[] fileType=new string[]{"pdf\\","pps\\",

  • c#使用filesystemwatcher实时监控文件目录的添加和删除

    首先,我们需要对.net提供的FileSystemWatcher类有所了解.我有些懒,找了MSDN对该类的描述. FileSystemWatcher类侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件. 使用 FileSystemWatcher 监视指定目录中的更改.可监视指定目录中的文件或子目录的更改.可以创建一个组件来监视本地计算机.网络驱动器或远程计算机上的文件. 若要监视所有文件中的更改,请将 Filter 属性设置为空字符串 ("") 或使用通配符("*

随机推荐