private void addNode(string dir, TreeNodeCollection treeNodes)
{
string[] dirs = Directory.GetDirectories(dir); //返回指定文件夹下的文件夹
int k = 0;
for (int i = 0; i < dirs.Length; i++)
{
if (Directory.Exists(dirs[i]))
{
string[] name = dirs[i].Split('\\');
TreeNode node = new TreeNode(dir + name[name.Length - 1]);
node.ImageIndex = 0;
node.SelectedImageIndex = 2;
treeNodes.Add(name[name.Length - 1]); //添加文件夹节点
addNode(dirs[i], treeNodes[k++].Nodes); //调用一下层方法
}
}
string[] files = Directory.GetFiles(dir); //返回指定文件夹下的文件
for (int i = 0; i < files.Length; i++)
{
string str = "";
if (File.Exists(files[i]) && files[i].EndsWith(".url")) //只获取url后缀的网页快捷方式文件
{
str = Path.GetFileName(files[i]);
TreeNode node = new TreeNode(dir + str);
node.ImageIndex = 1;
node.SelectedImageIndex = 2;
treeNodes.Add(str); //添加文件节点
}
}
}如上面的代码,,前一个for是文件夹,后面是文件,,,但是不解的是为什么整棵树的图标都是默认的0,,而不是我设的1或2????
{
string[] dirs = Directory.GetDirectories(dir); //返回指定文件夹下的文件夹
int k = 0;
for (int i = 0; i < dirs.Length; i++)
{
if (Directory.Exists(dirs[i]))
{
string[] name = dirs[i].Split('\\');
TreeNode node = new TreeNode(dir + name[name.Length - 1]);
node.ImageIndex = 0;
node.SelectedImageIndex = 2;
treeNodes.Add(name[name.Length - 1]); //添加文件夹节点
addNode(dirs[i], treeNodes[k++].Nodes); //调用一下层方法
}
}
string[] files = Directory.GetFiles(dir); //返回指定文件夹下的文件
for (int i = 0; i < files.Length; i++)
{
string str = "";
if (File.Exists(files[i]) && files[i].EndsWith(".url")) //只获取url后缀的网页快捷方式文件
{
str = Path.GetFileName(files[i]);
TreeNode node = new TreeNode(dir + str);
node.ImageIndex = 1;
node.SelectedImageIndex = 2;
treeNodes.Add(str); //添加文件节点
}
}
}如上面的代码,,前一个for是文件夹,后面是文件,,,但是不解的是为什么整棵树的图标都是默认的0,,而不是我设的1或2????
TreeNode node = new TreeNode(dir + name[name.Length - 1]);
node.ImageIndex = 0;
node.SelectedImageIndex = 2;
treeNodes.Add(name[name.Length - 1]); //添加文件夹节点
是不是应该这样?
treeNodes.Add(node)
你创建的这个node后面根本没有添加到Tree上。
http://blog.csdn.net/mngzilin/archive/2010/04/27/5535136.aspx