C#如何打開并讀取usb的文件目錄
更新時(shí)間:2015年07月21日 09:22:34 作者:魂祭心
這篇文章主要介紹了用C#語言實(shí)現(xiàn)打開并讀取usb的文件目錄,但是實(shí)現(xiàn)此功能要注意一點(diǎn)必須在u盤插入才能接受到信息,需要的朋友可以參考下
下面我通過一個(gè)小例子并結(jié)合一段代碼片段給大家展示下,有需要的朋友可以來借鑒下。
界面上拖一個(gè) button 和treeview ,運(yùn)行的時(shí)候直接插入優(yōu)盤,單機(jī)按鈕就會出現(xiàn)目錄文件。不過只能在u盤插入,U盤拔出時(shí),才能接收到信息。
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("設(shè)備插入");
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 += "磁盤卷標(biāo):" + Tdriver.VolumeLabel + "\r\n";
PSTR += "文件系統(tǒng):" + 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("設(shè)備拔出");
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);
}
}
}
}
通過以上代碼可以實(shí)現(xiàn)打開并讀取usb的文件目錄,希望大家能夠喜歡。
您可能感興趣的文章:
- C#刪除文件目錄或文件的解決方法
- C#操作目錄與文件的方法步驟
- C#計(jì)算兩個(gè)文件的相對目錄算法的實(shí)例代碼
- C#獲取全部目錄和文件的簡單實(shí)例
- c#同步兩個(gè)子目錄文件示例分享 兩個(gè)文件夾同步
- c#使用filesystemwatcher實(shí)時(shí)監(jiān)控文件目錄的添加和刪除
- C#常用目錄文件操作類實(shí)例
- C#獲取項(xiàng)目指定目錄下文件的方法
- C#遍歷指定目錄下所有文件的方法
- C#實(shí)現(xiàn)最完整的文件和目錄操作類實(shí)例
- C#實(shí)現(xiàn)安全刪除文件目錄的方法
- C#讀取目錄下所有指定類型文件的方法
- C#實(shí)現(xiàn)Zip壓縮目錄中所有文件的方法
- C#文件目錄操作方法匯總
相關(guān)文章
WPF+DiffPlex實(shí)現(xiàn)文本比對工具
現(xiàn)行的文本編輯器大多都具備文本查詢的能力,但是并不能直觀的告訴用戶兩段文字的細(xì)微差異,所以對比工具在某種情況下,就起到了很便捷的效率。本文將利用DiffPlex實(shí)現(xiàn)簡易的文本比對工具,需要的可以參考一下2022-11-11
解決C# X64應(yīng)用程序中讀取WParam溢出的問題
C#應(yīng)用程序是AnyCPU的,在一段處理鼠標(biāo)滾輪WM_MOUSEWHEEL的代碼里碰到溢出的問題OverflowException2013-04-04
C#實(shí)現(xiàn)HTTP訪問類HttpHelper的示例詳解
在項(xiàng)目開發(fā)過程中,我們經(jīng)常會訪問第三方接口,如我們需要接入的第三方接口是Web API,這時(shí)候我們就需要使用HttpHelper調(diào)用遠(yuǎn)程接口了。本文為大家介紹了C#實(shí)現(xiàn)HTTP訪問類HttpHelper的示例代碼,需要的可以參考一下2022-09-09
C#中私有構(gòu)造函數(shù)的特點(diǎn)和用途實(shí)例解析
這篇文章主要介紹了C#中私有構(gòu)造函數(shù)的特點(diǎn)和用途,需要的朋友可以參考下2014-08-08

