环境.net2005,语言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 winformT5
{
public partial class Form2 : Form
{
bool boo = true;
public Form2()
{
InitializeComponent();
}
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{//首先加上目录到treeview,再把目录与文件加到listview里面
if (e.Node.Text.ToString().Equals("我的电脑"))
{
treeView1.Nodes[0].Nodes.Clear();
EnumDrivers(e.Node);
}
else
{
if (boo == false)
{ return; }
int index = treeView1.SelectedNode.Index;
// string drive=treeView1.Nodes[0].Nodes[index ].Text .ToString ();
//MessageBox.Show(drive );
EnumDrivers2(e.Node );
}
if (!e.Node.Text.ToString().Equals("我的电脑"))
{
listView1.Clear();
ShotToList(e.Node );
}
}
private void EnumDrivers(TreeNode t) //传过来一个树型节点
{
foreach (string driver in Directory.GetLogicalDrives())
{
TreeNode tn = new TreeNode();
tn.Text = driver;//.Substring(0,2);
tn.ImageIndex =1; //写上这句就有图标,在节点上带图标
treeView1.SelectedNode.Nodes.Add(tn);
//MessageBox.Show (t.Nodes[ ].Text .ToString());
}
}
private void EnumDrivers2(TreeNode t)
{
// MessageBox.Show(t.Text.ToString());
foreach (string driver in Directory.GetDirectories (t.Text .ToString ()))
{
TreeNode tn = new TreeNode();
tn.Text = driver; //.Substring(0, 3);
tn.ImageIndex = 2; //写上这句就有图标,在节点上带图标
treeView1.SelectedNode.Nodes.Add(tn);
tn.Expand();
//MessageBox.Show (t.Nodes[ ].Text .ToString());
}
}
private void EnumDriversToListViewClick(string str)//当listview双击时产生的事件
{
for (int i = 0; i < treeView1.SelectedNode.Nodes.Count; i++)
{
if(treeView1.SelectedNode.Nodes[i].Text.ToString().Equals( str))
{
//MessageBox.Show("此文件假是" + treeView1.SelectedNode.Nodes[i].Text.ToString());
// treeView1.SelectedNode.Nodes[i].Nodes .Add
foreach (string driver in Directory.GetDirectories(treeView1.SelectedNode.Nodes[i].Text.ToString()))
{
TreeNode tn = new TreeNode();
tn.Text = driver; //.Substring(0, 3);
tn.ImageIndex = 2; //写上这句就有图标,在节点上带图标
treeView1.SelectedNode.Nodes[i].Nodes.Add(tn);
//treeView1.SelectedNode.Nodes.Add(tn);
tn.ExpandAll();
//MessageBox.Show (t.Nodes[ ].Text .ToString());
}
boo = false; //当t等于false时,不执行afterNode事件
treeView1.SelectedNode = treeView1.SelectedNode.Nodes[i];
boo = true; //复位
}
}
//string strname=str.Substring ( str.LastIndexOf(‘\\‘)+1,str.Length -str.LastIndexOf(‘\\‘)-1); 取文件名函数
//MessageBox.Show("文件名是"+strname);
//MessageBox.Show("此文件假数量" + treeView1.SelectedNode.Nodes.Count .ToString ());
// MessageBox.Show("此文件假数量"+treeView1.SelectedNode.Nodes["C:\\homework"].Nodes.Count .ToString ());
// MessageBox.Show("此文件假数量" + treeView1.SelectedNode.Nodes[0].Text.ToString());
// for (int i; i < treeView1.SelectedNode.Nodes.Count; i++) ;
//foreach (string driver in Directory.GetDirectories(str))
//{
// TreeNode tn = new TreeNode();
// tn.Text = driver; //.Substring(0, 3);
// tn.ImageIndex = 2; //写上这句就有图标,在节点上带图标
// treeView1.SelectedNode.Nodes.Add(tn);
// tn.Expand();
// MessageBox.Show (t.Nodes[ ].Text .ToString());
//}
}
private void ShotToList(TreeNode t){
foreach (String disname in Directory.GetDirectories(t.Text .ToString ()))//列出所有文件夹
{
listView1.Items.Add(disname,2);
}
foreach (String filename in Directory.GetFiles(t.Text.ToString())) //列出所有文件
{
listView1.Items.Add(filename,3);
}
}
private void ShowToListFromListView(string str) //当listview双击时执行,列出所有文件与文档
{
listView1.Clear();
foreach (String disname in Directory.GetDirectories(str))//列出所有文件夹
{
listView1.Items.Add(disname, 2);
}
foreach (String filename in Directory.GetFiles(str)) //列出所有文件
{
listView1.Items.Add(filename, 3);
}
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void listView1_DoubleClick(object sender, EventArgs e)
{
//MessageBox.Show(listView1.SelectedItems[0].Text);
String add = listView1.SelectedItems[0].Text;
EnumDriversToListViewClick(add);
this.ShowToListFromListView(add);
//foreach (String disname in Directory.GetDirectories
//treeView1.SelectedNode = tn;
}
private void 大图标ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.LargeIcon;
}
private void 小图标ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.SmallIcon;
}
private void 列表ToolStripMenuItem_Click(object sender, EventArgs e)
{
listView1.View = View.List;
}
private void listView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
contextMenuStrip1.Show();
}
}
}