环境: VS2005 C# 我用Treeview 创建了一颗树,对于其根节点用的是:
TreeNode RootNode = new TreeNode(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test", 0, 0);
treeView1.Nodes.Add(RootNode); //添加根节点
但是在显示中,根节点会出现“我的电脑\C:\Documents and Settings\foven\桌面\File Test”的全称 我只想要他显示为 “File Test”。
ps: 他的子节点 我用了 DirectoryInfo 的 name 取到子目录的文件名 但是这个根节点没有name属性啊。
大虾们请指教 在线等 谢谢!
TreeNode RootNode = new TreeNode(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test", 0, 0);
treeView1.Nodes.Add(RootNode); //添加根节点
但是在显示中,根节点会出现“我的电脑\C:\Documents and Settings\foven\桌面\File Test”的全称 我只想要他显示为 “File Test”。
ps: 他的子节点 我用了 DirectoryInfo 的 name 取到子目录的文件名 但是这个根节点没有name属性啊。
大虾们请指教 在线等 谢谢!
DirectoryInfo di = new DirectoryInfo(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test");
TreeNode RootNode = new TreeNode(di.Name, 0, 0);
public void GetDrive()
{
treeView1.ImageList = TreeImageList; treeView1.BeginUpdate();
treeView1.Nodes.Clear(); string rootFile = @"我的电脑\C:\Documents and Settings\foven\桌面\File Test"; TreeNode RootNode = new TreeNode(rootFile, 0, 0);
treeView1.Nodes.Add(RootNode);
int iImageIndex = 4; int iSelectedIndex = 5; DirectoryInfo astr = new DirectoryInfo(RootNode.FullPath.Remove(0,5)); DirectoryInfo[] astrDrives = astr.GetDirectories(); foreach (DirectoryInfo str in astrDrives)
{
TreeNode tnDrive = new TreeNode(str.Name, iImageIndex, iSelectedIndex);
treeView1.Nodes[0].Nodes.Add(tnDrive);
AddDirectories(tnDrive); treeView1.SelectedNode = tnDrive;
}
treeView1.EndUpdate(); }
//************************************************************************************* void AddDirectories(TreeNode tn)
{
tn.Nodes.Clear(); string strPath = tn.FullPath;
strPath = strPath.Remove(0, 5); //获得当前目录
DirectoryInfo dirinfo = new DirectoryInfo(strPath);
DirectoryInfo[] adirinfo;
try
{
adirinfo = dirinfo.GetDirectories();
}
catch
{ return; } int iImageIndex = 4; int iSelectedIndex = 5;
foreach (DirectoryInfo di in adirinfo)
{
if (di.Name == "RECYCLER" || di.Name == "RECYCLED" || di.Name == "Recycled")
{ iImageIndex = 6; iSelectedIndex = 6; }
else
{ iImageIndex = 4; iSelectedIndex = 5; } TreeNode tnDir = new TreeNode(di.Name, iImageIndex, iSelectedIndex);
tn.Nodes.Add(tnDir);
}
}
主要是这2段
public void GetDrive()
{
treeView1.ImageList = TreeImageList; treeView1.BeginUpdate();
treeView1.Nodes.Clear(); DirectoryInfo di = new DirectoryInfo(@"我的电脑\C:\Documents and Settings\foven\桌面\File Test"); TreeNode RootNode = new TreeNode(di.Name, 0, 0);
treeView1.Nodes.Add(RootNode);
int iImageIndex = 4; int iSelectedIndex = 5; DirectoryInfo astr = new DirectoryInfo(di.FullName);//这里不知道你Remove(0,5)是干嘛,我没Remove DirectoryInfo[] astrDrives = astr.GetDirectories(); foreach (DirectoryInfo str in astrDrives)
{
TreeNode tnDrive = new TreeNode(str.Name, iImageIndex, iSelectedIndex);
treeView1.Nodes[0].Nodes.Add(tnDrive);
AddDirectories(tnDrive); treeView1.SelectedNode = tnDrive;
}
treeView1.EndUpdate(); }
//************************************************************************************* void AddDirectories(TreeNode tn)
{
tn.Nodes.Clear(); string strPath = tn.FullPath;
strPath = strPath.Remove(0, 5); //获得当前目录
DirectoryInfo dirinfo = new DirectoryInfo(strPath);
DirectoryInfo[] adirinfo;
try
{
adirinfo = dirinfo.GetDirectories();
}
catch
{ return; } int iImageIndex = 4; int iSelectedIndex = 5;
foreach (DirectoryInfo di in adirinfo)
{
if (di.Name == "RECYCLER" || di.Name == "RECYCLED" || di.Name == "Recycled")
{ iImageIndex = 6; iSelectedIndex = 6; }
else
{ iImageIndex = 4; iSelectedIndex = 5; } TreeNode tnDir = new TreeNode(di.Name, iImageIndex, iSelectedIndex);
tn.Nodes.Add(tnDir);
}
}