用C#如何遍历d盘,并且列出有层次所有文件,而且能够用来复制出来打印,希望代码能直接运行(我不懂修改)

解决方案 »

  1.   

    for 循环递归自身
    easy 代码,不理会了~,仅顶==================================
    小小姑娘
    清早起床
    提着裤子上茅房
    茅房有人,不能再等
    只好拉在裤子上..................
    ==================================
      

  2.   

    /// <summary>
            /// 递归目录
            /// </summary>
            private void AddFolder()
            {
                try
                {
                    //this.folderBrowserDialog1.SelectedPath = "";
                    if (this.folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                    {
                        string path = folderBrowserDialog1.SelectedPath;
                        DirectoryInfo dinfo = new DirectoryInfo(path);
                        FileSystemInfo finfo = dinfo as FileSystemInfo;
                        ListFolderFiles(finfo);
                    }
                }
                catch (Exception)
                {
                }
            }        private void ListFolderFiles(FileSystemInfo fileinfo)
            {
                if (!fileinfo.Exists) return;
                DirectoryInfo dirinfo = fileinfo as DirectoryInfo;
                if (dirinfo == null) return; //不是目录 
                FileSystemInfo[] files = dirinfo.GetFileSystemInfos();
                for (int i = 0; i < files.Length; i++) //遍历目录下所有文件、子目录
                {
                    FileInfo file = files[i] as FileInfo;
                    if (file != null) // 是文件 
                    {
                        //操作
                    }
                    else //是目录 
                    {
                        ListFolderFiles(files[i]); //对子目录进行递归调用 
                    }
                }
            }
    接分接分
      

  3.   

    要我说,不如调用Tree命令,直接输出成文本,样子也挺好看。
      

  4.   

    楼上
    茅房有人,不能再等 -> 茅房有人,没有办法
    更押韵楼主参考:
            private void PathToNode(string APath, TreeNodeCollection AParentNode)
            {
                if (!Directory.Exists(APath)) return;
                string vText = Path.GetFileName(APath);
                if (vText.Length <= 0) vText = APath;
                TreeNode vTreeNode = AParentNode.Add(string.Format("[{0}]", vText));            string[] vDirectories = Directory.GetDirectories(APath);
                foreach (string vPath in vDirectories)
                    PathToNode(vPath, vTreeNode.Nodes);
                string[] vFiles = Directory.GetFiles(APath);
                foreach (string vFile in vFiles)
                    vTreeNode.Nodes.Add(Path.GetFileName(vFile));        }
            private void button4_Click(object sender, EventArgs e)
            {
                treeView1.BeginUpdate();
                treeView1.Nodes.Clear();
                try
                {
                    PathToNode("D:", treeView1.Nodes);
                }
                finally
                {
                    treeView1.EndUpdate();
                }
            }