获取文件夹下的子文件夹及文件的名称 |
您所在的位置:网站首页 › getfilesysteminfo › 获取文件夹下的子文件夹及文件的名称 |
实现效果:
知识运用: DirectoryInfo类的GetFileSystemInfo方法 //检索当前目录的文件和子目录的强类型FileSystemInfo对象的数组 public FileSystemInfo[] GetFileSystmeInfo() FileInfo类的DirectoryName属性 //获取表是目录的完整路径的字符串 public string DircetoryName {get;} FileInfo类的Name属性 //获取文件名 public override string Name{get;} 实现代码: private void button1_Click(object sender, EventArgs e) { if (folderBrowserDialog1.ShowDialog() == DialogResult.OK) { textBox1.Text = folderBrowserDialog1.SelectedPath; //显示选择文件夹的路径 tempstr = folderBrowserDialog1.SelectedPath; //存储选择文件夹的路径 } thdAddFile = new Thread(new ThreadStart(SetAddFile)); //创建一个线程 thdAddFile.Start(); //启动线程 } public delegate void AddFile(); //定义委托线程 public void SetAddFile() { this.Invoke(new AddFile(RunAddFile)); //对指定的线程进行托管 } public void RunAddFile() { TreeNode TNode = new TreeNode(); File_Copy(treeView1,tempstr,TNode,0); //执行遍历方法 Thread.Sleep(0); //挂起主线程 thdAddFile.Abort(); //退出线程 } /// /// 一个递归方法用来遍历制定文件夹下的 /// 所有子文件夹河文件 /// /// TreeView控件 /// 指定文件夹的路径 /// TreeView控件的当前节点 /// 指定是文件还是文件夹 private void File_Copy(TreeView TV,string Sdir,TreeNode TNode,int n) { DirectoryInfo dir = new DirectoryInfo(Sdir); try { if (!dir.Exists) //判断所指文件或文件夹是否存在 return; DirectoryInfo dirD = dir as DirectoryInfo; if (dirD == null) return; else { if (n == 0) { TNode = TV.Nodes.Add(dirD.Name); //添加文件夹的名称 TNode.Tag = 1; } else { TNode = TNode.Nodes.Add(dirD.Name); //文件夹中添加子文件夹的名称 TNode.Tag = 1; } } FileSystemInfo[] files = dirD.GetFileSystemInfos(); //获取文件夹中所有文件和文件夹 foreach (FileSystemInfo FSys in files) //对单个FileSystemInfo进行判断 是文件夹则递归 { FileInfo file = FSys as FileInfo; if (file != null) //是文件 进行操作 { FileInfo SFinfo = new FileInfo(file.DirectoryName + "\\" + file.Name); //文件的原始路径 TNode.Nodes.Add(SFinfo.Name); //添加文件 TNode.Tag = 1; } else { File_Copy(TV,Sdir+"\\"+FSys.ToString(),TNode,1); //对文件夹进行递归 } } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } }
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |