实现遍历目录的递归算法(c#实现)

无需过多的解释了,好代码,理解清楚就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");
            }
        }

2 Responses to “实现遍历目录的递归算法(c#实现)”

  1. xuSweeter 说到:

    来一个我写的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());
    }
    }
    }
    }

  2. amberlife 说到:

    其实关键就是一个递归,呵呵,我写有一个java实现的类似windows搜索那样的程序,你可以看一下,有空可以交流,QQ:574541259.

Leave a Reply