这是 C# 资源管理器
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO; namespace MyFileBrowser{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TreeNode rootnode = this.treeView1.Nodes[0]; rootnode.Expand(); TreeNode ndMyComputer = null; TreeNode ndMyDocument = null; foreach (TreeNode nd in rootnode.Nodes) { if (nd.Name=="ndMyComputer") { ndMyComputer = nd; } if (nd.Name=="ndMyDocument") { ndMyDocument = nd; } } DriveInfo[] drivers = DriveInfo.GetDrives(); foreach (DriveInfo driver in drivers) { TreeNode node = new TreeNode(driver.Name); node.ImageKey = "driver.ico"; node.SelectedImageKey = "driver.ico"; node.Tag = driver.RootDirectory.FullName; ndMyComputer.Nodes.Add(node); } string MyDocumentPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); DirectoryInfo MyDocument = new DirectoryInfo(MyDocumentPath); DirectoryInfo[] folders = MyDocument.GetDirectories(); foreach (DirectoryInfo folder in folders) { TreeNode node = new TreeNode(folder.Name); node.ImageKey = "folder.ico"; node.SelectedImageKey = "folder.ico"; node.Tag = folder.FullName; ndMyDocument.Nodes.Add(node); } } private void Form1_SizeChanged(object sender, EventArgs e) { this.tsbAddress.Width = this.toolStrip2.Width - 110; } private void treeView1_AfterExpand(object sender, TreeViewEventArgs e) { if (e.Node.Parent==null) { return; } foreach (TreeNode node in e.Node.Nodes) { if (node.Tag==null) { continue; } DirectoryInfo folder = new DirectoryInfo(node.Tag.ToString()); DirectoryInfo[] subFolders = null; try { subFolders = folder.GetDirectories(); } catch (IOException) { } catch (UnauthorizedAccessException) { } if (subFolders != null) { foreach (DirectoryInfo subFolder in subFolders) { TreeNode subNode = new TreeNode(subFolder.Name); subNode.ImageKey = "folder.ico"; subNode.SelectedImageKey = "folder.ico"; subNode.Tag = subFolder.FullName; node.Nodes.Add(subNode); } } } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByKeyboard || e.Action == TreeViewAction.ByMouse) { if (e.Node.Tag == null) { this.Text = e.Node.Text; this.tsbAddress.Text = e.Node.Text; } else { this.Text = e.Node.Tag.ToString(); this.tsbAddress.Text = e.Node.Tag.ToString(); } } this.listView1.Items.Clear(); if (e.Node.Tag != null) { string folderPath = e.Node.Tag.ToString(); DirectoryInfo folder = new DirectoryInfo(folderPath); DirectoryInfo[] subFolders = null; try { subFolders = folder.GetDirectories(); } catch (UnauthorizedAccessException) { } if (subFolders!=null) { foreach (DirectoryInfo subfolder in subFolders) { listView1.Items.Add(new ListViewItem(new string[] { subfolder.Name, "文件夹", "", "" },"folder.ico")); } } FileInfo[] files = null; try { files = folder.GetFiles(); } catch (UnauthorizedAccessException) { } if (files != null) { foreach (FileInfo file in files) { listView1.Items.Add(new ListViewItem(new string[] { file.Name, "文件", GetFileSize(file), file.LastWriteTime.ToShortDateString() },"file.ico")); } } } } private string GetFileSize(FileInfo file) { string result = null; long filesize = file.Length; if (filesize >= 1024 * 1024 * 1024) { result = string.Format("{0:########0.00} GB",(double) filesize / (1024 * 1024 * 1024)); } else if (filesize >= 1024 * 1024) { result = string.Format("{0:####0.00} MB", (double) filesize / (1024 * 1024)); } else if (filesize >= 1024) { result = string.Format("{0:####0.00} KB", (double) filesize / 1024); } else { result = string.Format("{0} Bytes", filesize); } return result; } private void tsbHideTree_Click(object sender, EventArgs e) { this.panel1.Hide(); this.tsbShowTree.Checked = false; } private void tsbShowTree_Click(object sender, EventArgs e) { if (this.tsbShowTree.Checked) { this.panel1.Show(); } else { this.panel1.Hide(); } } private void tsbUp_Click(object sender, EventArgs e) { TreeNode node = treeView1.SelectedNode; TreeNode ParentNode = node.Parent; if (ParentNode!=null) { this.treeView1.SelectedNode = ParentNode; } } }}
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO; namespace MyFileBrowser{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TreeNode rootnode = this.treeView1.Nodes[0]; rootnode.Expand(); TreeNode ndMyComputer = null; TreeNode ndMyDocument = null; foreach (TreeNode nd in rootnode.Nodes) { if (nd.Name=="ndMyComputer") { ndMyComputer = nd; } if (nd.Name=="ndMyDocument") { ndMyDocument = nd; } } DriveInfo[] drivers = DriveInfo.GetDrives(); foreach (DriveInfo driver in drivers) { TreeNode node = new TreeNode(driver.Name); node.ImageKey = "driver.ico"; node.SelectedImageKey = "driver.ico"; node.Tag = driver.RootDirectory.FullName; ndMyComputer.Nodes.Add(node); } string MyDocumentPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); DirectoryInfo MyDocument = new DirectoryInfo(MyDocumentPath); DirectoryInfo[] folders = MyDocument.GetDirectories(); foreach (DirectoryInfo folder in folders) { TreeNode node = new TreeNode(folder.Name); node.ImageKey = "folder.ico"; node.SelectedImageKey = "folder.ico"; node.Tag = folder.FullName; ndMyDocument.Nodes.Add(node); } } private void Form1_SizeChanged(object sender, EventArgs e) { this.tsbAddress.Width = this.toolStrip2.Width - 110; } private void treeView1_AfterExpand(object sender, TreeViewEventArgs e) { if (e.Node.Parent==null) { return; } foreach (TreeNode node in e.Node.Nodes) { if (node.Tag==null) { continue; } DirectoryInfo folder = new DirectoryInfo(node.Tag.ToString()); DirectoryInfo[] subFolders = null; try { subFolders = folder.GetDirectories(); } catch (IOException) { } catch (UnauthorizedAccessException) { } if (subFolders != null) { foreach (DirectoryInfo subFolder in subFolders) { TreeNode subNode = new TreeNode(subFolder.Name); subNode.ImageKey = "folder.ico"; subNode.SelectedImageKey = "folder.ico"; subNode.Tag = subFolder.FullName; node.Nodes.Add(subNode); } } } } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Action == TreeViewAction.ByKeyboard || e.Action == TreeViewAction.ByMouse) { if (e.Node.Tag == null) { this.Text = e.Node.Text; this.tsbAddress.Text = e.Node.Text; } else { this.Text = e.Node.Tag.ToString(); this.tsbAddress.Text = e.Node.Tag.ToString(); } } this.listView1.Items.Clear(); if (e.Node.Tag != null) { string folderPath = e.Node.Tag.ToString(); DirectoryInfo folder = new DirectoryInfo(folderPath); DirectoryInfo[] subFolders = null; try { subFolders = folder.GetDirectories(); } catch (UnauthorizedAccessException) { } if (subFolders!=null) { foreach (DirectoryInfo subfolder in subFolders) { listView1.Items.Add(new ListViewItem(new string[] { subfolder.Name, "文件夹", "", "" },"folder.ico")); } } FileInfo[] files = null; try { files = folder.GetFiles(); } catch (UnauthorizedAccessException) { } if (files != null) { foreach (FileInfo file in files) { listView1.Items.Add(new ListViewItem(new string[] { file.Name, "文件", GetFileSize(file), file.LastWriteTime.ToShortDateString() },"file.ico")); } } } } private string GetFileSize(FileInfo file) { string result = null; long filesize = file.Length; if (filesize >= 1024 * 1024 * 1024) { result = string.Format("{0:########0.00} GB",(double) filesize / (1024 * 1024 * 1024)); } else if (filesize >= 1024 * 1024) { result = string.Format("{0:####0.00} MB", (double) filesize / (1024 * 1024)); } else if (filesize >= 1024) { result = string.Format("{0:####0.00} KB", (double) filesize / 1024); } else { result = string.Format("{0} Bytes", filesize); } return result; } private void tsbHideTree_Click(object sender, EventArgs e) { this.panel1.Hide(); this.tsbShowTree.Checked = false; } private void tsbShowTree_Click(object sender, EventArgs e) { if (this.tsbShowTree.Checked) { this.panel1.Show(); } else { this.panel1.Hide(); } } private void tsbUp_Click(object sender, EventArgs e) { TreeNode node = treeView1.SelectedNode; TreeNode ParentNode = node.Parent; if (ParentNode!=null) { this.treeView1.SelectedNode = ParentNode; } } }}
解决方案 »
- 精通UDP协议通信的进!!!!!!!!!!!!!!
- 工具栏控件ToolStrip的项分组
- 高手请教httprequest多线程载入原代码,求范例写法。
- 请求帮助 C#windows form如何想asp.net用表格显示出数据
- this.ConnectAccessDB(); 这句我可不可以这样写 Page.ConnectAccessDB();
- 访问远程数据库有那些同步、异步机制?
- 在C# 如何在后台如何获取两个输入的相同的键盘值
- 关于线程的问题
- C# 如何实现所有new的chart上的曲线随时都能缩放??
- 求c#中用webservices写的接口,能用json串格式请求获取数据的代码示例
- 我有一个泛型类,但我的类型是未知的,如何转换??
- 请图形处理高手来帮忙看看这个内存不足的问题
不明白的按F1
{ public partial class Form1 : Form
{
//窗体初始化
public Form1()
{ InitializeComponent(); }
//窗体加载
private void Form1_Load(object sender, EventArgs e)
{
//创建一个树节点,并将窗体树节点付给它
TreeNode rootnode = this.treeView1.Nodes[0];
//展开树
rootnode.Expand(); TreeNode ndMyComputer = null; TreeNode ndMyDocument = null; //循环树的根节点,将相等符合的付给上面两个变量
foreach (TreeNode nd in rootnode.Nodes)
{ if (nd.Name == "ndMyComputer")
{ ndMyComputer = nd; } if (nd.Name == "ndMyDocument")
{ ndMyDocument = nd; } }
//获得当前计算机所有驱动器的信息
DriveInfo[] drivers = DriveInfo.GetDrives(); //获取单个驱动的信息
foreach (DriveInfo driver in drivers)
{
//创建一个以驱动名字为节点文本的节点
TreeNode node = new TreeNode(driver.Name); node.ImageKey = "driver.ico"; node.SelectedImageKey = "driver.ico"; node.Tag = driver.RootDirectory.FullName; ndMyComputer.Nodes.Add(node); }
//获取程序文件本身的路径
string MyDocumentPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); //根据路径获取目录信息
DirectoryInfo MyDocument = new DirectoryInfo(MyDocumentPath); DirectoryInfo[] folders = MyDocument.GetDirectories();
//循环目录
foreach (DirectoryInfo folder in folders)
{
//创建一个以目录名为节点文本的节点
TreeNode node = new TreeNode(folder.Name); node.ImageKey = "folder.ico"; node.SelectedImageKey = "folder.ico"; node.Tag = folder.FullName; ndMyDocument.Nodes.Add(node); } }
//窗体大小改变事件
private void Form1_SizeChanged(object sender, EventArgs e)
{
//将工具条的宽度减110之后付给tsbAddress控件
this.tsbAddress.Width = this.toolStrip2.Width - 110; }
//树节点展开后的事件
private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
//如果节点的父节点为空,结束
if (e.Node.Parent == null)
{ return; }
//不为空, 循环所有节点
foreach (TreeNode node in e.Node.Nodes)
{
//节点标签为空,continue
if (node.Tag == null)
{ continue; } //创建一个目录信息
DirectoryInfo folder = new DirectoryInfo(node.Tag.ToString()); DirectoryInfo[] subFolders = null; try
{
//获取子目录
subFolders = folder.GetDirectories(); } catch (IOException)
{ } catch (UnauthorizedAccessException)
{ }
//子目录不为空
if (subFolders != null)
{
//循环目录信息
foreach (DirectoryInfo subFolder in subFolders)
{
//以子目录名为节点文本创建节点
TreeNode subNode = new TreeNode(subFolder.Name); subNode.ImageKey = "folder.ico"; subNode.SelectedImageKey = "folder.ico"; subNode.Tag = subFolder.FullName; node.Nodes.Add(subNode); } } } }
//树节点选中后的事件
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
//如果是键盘触发或者是鼠标触发
if (e.Action == TreeViewAction.ByKeyboard || e.Action == TreeViewAction.ByMouse)
{
//标签为空
if (e.Node.Tag == null)
{
//将节点文本付给Text
this.Text = e.Node.Text; this.tsbAddress.Text = e.Node.Text; } else
{
//将Tag付给Text
this.Text = e.Node.Tag.ToString(); this.tsbAddress.Text = e.Node.Tag.ToString(); } }
//清空listView1
this.listView1.Items.Clear(); if (e.Node.Tag != null)
{
//同上
string folderPath = e.Node.Tag.ToString(); DirectoryInfo folder = new DirectoryInfo(folderPath); DirectoryInfo[] subFolders = null; try
{ subFolders = folder.GetDirectories(); } catch (UnauthorizedAccessException)
{ } if (subFolders != null)
{ foreach (DirectoryInfo subfolder in subFolders)
{
//将文件目录信息添加到listView1中
listView1.Items.Add(new ListViewItem(new string[] { subfolder.Name, "文件夹", "", "" }, "folder.ico")); } } FileInfo[] files = null; try
{ files = folder.GetFiles(); } catch (UnauthorizedAccessException)
{ } if (files != null)
{ foreach (FileInfo file in files)
{
//将文件信息添加到listView1中
listView1.Items.Add(new ListViewItem(new string[] { file.Name, "文件", GetFileSize(file), file.LastWriteTime.ToShortDateString() }, "file.ico")); } } } }
/// <summary>
/// 返回文件大小
/// </summary>
/// <param name="file">文件信息</param>
/// <returns>文件大小</returns>
private string GetFileSize(FileInfo file)
{ string result = null; long filesize = file.Length;
//文件大小, GB 千兆
if (filesize >= 1024 * 1024 * 1024)
{ result = string.Format("{0:########0.00} GB", (double)filesize / (1024 * 1024 * 1024)); }
//MB 兆
else if (filesize >= 1024 * 1024)
{ result = string.Format("{0:####0.00} MB", (double)filesize / (1024 * 1024)); }
//KB 千字节
else if (filesize >= 1024)
{ result = string.Format("{0:####0.00} KB", (double)filesize / 1024); }
//Bytes 字节
else
{ result = string.Format("{0} Bytes", filesize); } return result; } private void tsbHideTree_Click(object sender, EventArgs e)
{
//panel隐藏
this.panel1.Hide();
//checkbox选中状态设为False
this.tsbShowTree.Checked = false; } private void tsbShowTree_Click(object sender, EventArgs e)
{
//选中 if (this.tsbShowTree.Checked)
{
//panel显示
this.panel1.Show(); } else
{
//否者隐藏
this.panel1.Hide(); } } private void tsbUp_Click(object sender, EventArgs e)
{
//将选中的节点付给一个新的节点
TreeNode node = treeView1.SelectedNode;
//获取节点的父节点
TreeNode ParentNode = node.Parent; //不为空,选中的节点设置为父节点
if (ParentNode != null)
{ this.treeView1.SelectedNode = ParentNode; } } }}