获取文件夹下的子文件夹及文件的名称
Posted feiyucha
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取文件夹下的子文件夹及文件的名称相关的知识,希望对你有一定的参考价值。
实现效果:
知识运用:
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(); //退出线程 } /// <summary> /// 一个递归方法用来遍历制定文件夹下的 /// 所有子文件夹河文件 /// </summary> /// <param name="TV">TreeView控件</param> /// <param name="Sdir">指定文件夹的路径</param> /// <param name="TNode">TreeView控件的当前节点</param> /// <param name="n">指定是文件还是文件夹</param> 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; } }
以上是关于获取文件夹下的子文件夹及文件的名称的主要内容,如果未能解决你的问题,请参考以下文章
如何编写循环条件以获取 postgresql 中的子子文件夹名称