zoukankan      html  css  js  c++  java
  • 查找本地文件中的特定字符串并替换代码

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.IO;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Windows.Forms;
    
    namespace ChangeFileName
    {
        public partial class jiance : Form
        {
            public int tem = 0;
            public List<string> tem_list = new List<string>();
            public jiance()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog fbd = new FolderBrowserDialog();
    
                if (fbd.ShowDialog() == DialogResult.OK)
                {
                    textBox1.Text = fbd.SelectedPath;
                }
            }
    
    
            private void button2_Click(object sender, EventArgs e)
            {
                DirectoryInfo d = new DirectoryInfo(textBox1.Text);
                GetAll(d);
                MessageBox.Show("操作完成");
            }
    
            private void button3_Click(object sender, EventArgs e)
            {
                tem = 0;
                tem_list = new List<string>();
                DirectoryInfo d = new DirectoryInfo(textBox1.Text);
                ReplaceAll(d);
                MessageBox.Show("操作完成");
                label3.Text = tem.ToString();
                var tem_str="";
                if (tem != 0)
                {
                    for (int i = 0; i < tem_list.Count; i++)
                    {
                        tem_str += tem_list[i] + "
    ";
                    }
                }
                textBox4.Text = tem_str;
            }
    
            void GetAll(DirectoryInfo dir)//搜索文件夹中的文件
            {
                FileInfo[] allFile = dir.GetFiles();
                foreach (FileInfo fi in allFile)
                {
                    if (fi.Extension == ".php" || fi.Extension == ".html" || fi.Extension == ".htm" || fi.Extension == ".js" || fi.Extension == ".css")
                    {
                        // var fileName = fi.Name;
                        var fileName = fi.FullName;
    
                        //防止文本字符中有特殊字符。必须用Encoding.Default
                        StreamReader reader = new StreamReader(fileName, Encoding.Default);
    
                        String a = reader.ReadToEnd();
                        //将a.hhp文件中bb替换为cc。
                        a = a.Replace(textBox2.Text.Trim() + GetValue(a, textBox2.Text.Trim(), textBox3.Text.Trim()) + textBox3.Text.Trim(), "");
                        //a.hhp重命名为b.hhp
                        //防止文本字符中有特殊字符。必须用Encoding.Default
                        StreamWriter readTxt = new StreamWriter(@"b.hhp", false, Encoding.Default);
                        readTxt.Write(a);
                        readTxt.Flush();
                        readTxt.Close();
                        reader.Close();
                        //b.hhp重命名为a.hhp,并删除b.hhp
                        File.Copy(@"b.hhp", fileName, true);
                        File.Delete(@"b.hhp");
    
                    }
                }
    
                DirectoryInfo[] allDir = dir.GetDirectories();
                foreach (DirectoryInfo d in allDir)
                {
                    GetAll(d);
                }
            }
    
            void ReplaceAll(DirectoryInfo dir)//搜索文件夹中的文件
            {
                FileInfo[] allFile = dir.GetFiles();
                foreach (FileInfo fi in allFile)
                {
                    if (fi.Extension == ".php" || fi.Extension == ".html" || fi.Extension == ".htm" || fi.Extension == ".js" || fi.Extension == ".css" || fi.Extension == ".txt")
                    {
                        // var fileName = fi.Name;
                        var fileName = fi.FullName;
    
                        //防止文本字符中有特殊字符。必须用Encoding.Default
                        StreamReader reader = new StreamReader(fileName, Encoding.Default);
                        String a = reader.ReadToEnd();
    
                        var stringtem = GetValue(a, textBox2.Text.Trim(), textBox3.Text.Trim());
                        if (!string.IsNullOrEmpty(stringtem))
                        {
                            tem++;
                            tem_list.Add(fileName);
                        }
    
                    } 
                  
                 
                }
    
                DirectoryInfo[] allDir = dir.GetDirectories();
                foreach (DirectoryInfo d in allDir)
                {
                    ReplaceAll(d);
                }
            }
    
            /// <summary>
            /// 获得字符串中开始和结束字符串中间得值
            /// </summary>
            /// <param name="str">字符串</param>
            /// <param name="s">开始</param>
            /// <param name="e">结束</param>
            /// <returns></returns> 
            public static string GetValue(string str, string s, string e)
            {
                Regex rg = new Regex("(?<=(" + s + "))[.\s\S]*?(?=(" + e + "))", RegexOptions.Multiline | RegexOptions.Singleline);
                return rg.Match(str).Value;
            }
        }
    }
    

      

  • 相关阅读:
    运算符的优先级
    运算符
    值类型与引用类型的区别
    进制转换
    Java总结第二期
    Java总结第一期
    库存管理系统
    MyBank后感
    day72
    day71
  • 原文地址:https://www.cnblogs.com/muxueyuan/p/5254367.html
Copyright © 2011-2022 走看看