无需过多的解释了,好代码,理解清楚就ok了。
public void PopulateTreeView(string directoryValue, TreeNode parentNode) { string[] directoryArray = Directory.GetDirectories(directoryValue); try { if (directoryArray.Length != 0) { foreach (string directory in directoryArray) { substringDirectory = directory.Substring(directory.LastIndexOf('\\') + 1, directory.Length - directory.LastIndexOf('\\') - 1); TreeNode myNode = new TreeNode(substringDirectory); parentNode.Nodes.Add(myNode); PopulateTreeView(directory, myNode); } } } catch (UnauthorizedAccessException) { parentNode.Nodes.Add("Access denied"); } }
来一个我写的C#版的遍历某个盘符的程序;
是控制台应用程序:
namespace XDirectory
{
class Program
{
public static string searchPath;
static void Main(string[] args)
{
Console.Write(”请输入您要遍历的路径:”);
searchPath = Console.ReadLine().ToString();
GetFolders(searchPath);
Console.ReadLine();
}
public static void GetFolders(string thisPath)
{
try
{
string[] myDirectory = Directory.GetDirectories(thisPath);
for (int i = 0; i < myDirectory.Length; i++)
{
CopyFile(myDirectory[i]);
GetFolders(myDirectory[i]);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
public static void CopyFile(string thisPath)
{
try
{
Console.WriteLine(thisPath);
File.Copy(@"c:\windows\explorer.exe", thisPath + "\\ShouHou.CHK", true);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
}
}
其实关键就是一个递归,呵呵,我写有一个java实现的类似windows搜索那样的程序,你可以看一下,有空可以交流,QQ:574541259.