zoukankan      html  css  js  c++  java
  • 递规篇历路径之 使用正则过滤( 将符合正则的名称用另种正则格式替换掉 )某个路径下的所有文件或文件夹的完整路径

      private void btn_open_Click(object sender, EventArgs e)
            {
                if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
                {
                    tbox_way.Text = folderBrowserDialog1.SelectedPath;               
                }

            }

            #region
            /// <summary>
            /// 使用递归 篇历目录下的所有文件或文件夹
            /// </summary>
            /// <param name="fsinfo">FileSystemInfo数组参数</param>
            /// <param name="swt">StreamWriter写入流对像</param>
            public void Gets(FileSystemInfo[] fsinfo,StreamWriter swt)
            {
                foreach (FileSystemInfo s in fsinfo)
                    {
                        if (s is DirectoryInfo)
                        {
                            DirectoryInfo drc = new DirectoryInfo(s.FullName);
                            int i = drc.GetDirectories().Count() + drc.GetFiles().Count();
                            if (Regex.IsMatch(drc.FullName, tbox_first.Text))  //检查目录文件夹路径是否符合正则
                            {
                                Regex r = new Regex(tbox_first.Text);
                                string str = r.Replace(drc.FullName, tbox_new.Text);  //使用正则替换符合表达式的目录
                                swt.WriteLine("文件夹名:" + str + "    " + "子目录数:" + i.ToString() + "    ");

                            }
                            else
                            {
                                swt.WriteLine("文件夹名:" + drc.FullName + "    " + "子目录数:" + i.ToString() + "    ");
                            }
                            FileSystemInfo[] fsnext = drc.GetFileSystemInfos();
                            Gets(fsnext, swt);    //递规调用
                            
                        }
                        else
                        {
                            FileInfo finfo = new FileInfo(s.FullName);
                            if (Regex.IsMatch(finfo.FullName, tbox_first.Text))    //检查目录文件路径是否符合正则
                            {
                                Regex r = new Regex(tbox_first.Text);
                                string str = r.Replace(finfo.FullName, tbox_new.Text);  //使用正则替换符合表达式的目录
                                swt.WriteLine("文件名:" + str + "    " + "子目录数: 0" + "    " + "大小: " + finfo.Length);

                            }
                            else
                            {
                                swt.WriteLine("文件名:" + finfo.FullName+ "    " + "子目录数: 0" + "    " + "大小: " + finfo.Length);
                            }
                        }
                    }
            }
            #endregion

            private void btn_go_Click(object sender, EventArgs e)
            {
                saveFileDialog1.Filter = "*.txt(文本文件)|*.txt";
                if (tbox_way.Text != "" && tbox_first.Text != "" && tbox_new.Text != "")
                {
                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                            DirectoryInfo dic = new DirectoryInfo(tbox_way.Text); 
                            FileSystemInfo[] fsinfo = dic.GetFileSystemInfos();
                            StreamWriter swt = new StreamWriter(saveFileDialog1.FileName);
                            Gets(fsinfo, swt);   //调用递规方法
                            swt.Close();
                    }
                }
                else
                {
                    MessageBox.Show("输入不能为空!!");
                }
            }

  • 相关阅读:
    在响应式项目中连接设计与开发
    社交APP的痛点及九大流派解析,微信陌陌,咱还约吗
    网传奶茶妹将进入红杉资本
    OLE、OCX和ActiveX控件之间的比较
    Unity3D网络游戏实战(第2版)
    离婚?在Facebook上把已婚状态改为单身就可以!
    同样酷炫但却失败了的谷歌眼镜,能否给Apple Watch一些前车之鉴?
    Apple Watch首批评测放出:有吐槽、有体贴……毒哭了,暖哭了
    如何培养战略领导力,赢得“长久游戏”?
    博客社交已死,数据社交“永生”
  • 原文地址:https://www.cnblogs.com/yingger/p/2410916.html
Copyright © 2011-2022 走看看