• 获取文件夹下的子文件夹及文件的名称


    实现效果:

      

    知识运用:

      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;
                }
            }
    

      

  • 相关阅读:
    【POJ1961 Period】【KMP】
    浅谈KMP算法
    【关于动态开点线段树】
    【POJ3349 Snowflake Snow Snowflakes】【Hash表】
    【NOI 2002 银河英雄传说】【带权并查集】
    路径问题
    group_concat函数详解
    MySQL中GROUP_CONCAT中排序
    怎么实现CSS限制字数,超出部份显示点点点.
    jsp去掉小数点
  • 原文地址:https://www.cnblogs.com/feiyucha/p/10222176.html
Copyright © 2020-2023  润新知