http://blog.163.com/aoxiangtiankong@yeah/blog/static/8411202620092351359634/
private void Form1_Load(object sender, EventArgs e)
{
TreeNode node = new TreeNode("Images");
treeView1.Nodes.Add(node);
GetTreeViewDat("D:\DesignSystem\Images",node);
}
// 递归调用,加载Images下的所有文件夹。
private void GetTreeViewData(string path, TreeNode node)
{
//获取指定路径下的所有文件夹集合,GetFiles()则会包含文件,如:a.jpg。
string[] dirs = Directory.GetDirectories(path);
string imagePath = "";
for (int i = 0; i < dirs.Length; i++)
{
//得到指定文件夹的子级文件夹,子级文件夹通过自调自获取其子级文件夹,
//这样一层一层得到指定文件下的所有文件夹。
string childpath = dirs[i];
//截取字符串,把路径去掉,只显示文件夹名称。
imagePath = childpath.Substring(childpath.LastIndexOf("\") + 1, childpath.Length - childpath.LastIndexOf("\") - 1);
TreeNode child = new TreeNode(imagePath,0,0); // 把文件夹增加到TreeNode。
child.Name = childpath;
node.Nodes.Add(child);
GetTreeViewData(childpath, child); //递归调用.
}
}
/该方法就是读取指定文件夹下的所有文件/
/// <summary>
/// 通过递归调用,获取指定文件夹下的所有文件夹以及文件,存储到ArrayList。
/// </summary>
/// <param name="path"></param>
/// <param name="filter"></param>
private void ParseDirectory(string path, string filter)
{
string[] dirs = Directory.GetDirectories(path); //得到子目录
IEnumerator iter = dirs.GetEnumerator();
while (iter.MoveNext())
{
string str = (string)(iter.Current);
ParseDirectory(str, filter); //递归调用。
}
string[] files = Directory.GetFiles(path, filter); //获取文件
if (files.Length > 0)
{
m_numFiles += files.Length;
m_pathList.Add(files); //存储文件目录。
}
}