c#替换文件目录及其子目录中的文件内容
<p>using System;</p><p>using System.Collections.Generic;</p><p>using System.IO;</p><p>using System.Linq;</p><p>using System.Text;</p><p>using System.Threading.Tasks;</p><p><br></p><p>namespace urlChange</p><p>{</p><p> class Program</p><p> {</p><p> static void Main(string[] args)</p><p> {</p><p> Console.WriteLine("替换该文件及其子文件夹下*html文档内容。");</p><p> Console.WriteLine("请输入文件目录:");</p><p> string s = null;</p><p> List<DirectoryInfo> fileList = new List<DirectoryInfo>();</p><p> List<FileInfo> htmlList=new List<FileInfo>();</p><p><br></p><p> //输入文件url</p><p> s = Console.ReadLine();</p><p> //创建文件目录</p><p> DirectoryInfo dir = new DirectoryInfo(@s);</p><p><br></p><p> //把文件目录信息存到集合中</p><p> fileList.Add(dir);</p><p><br></p><p> //取得文件目录中的子目录</p><p> DirectoryInfo[] dii = dir.GetDirectories();</p><p><br></p><p> GetFileUrl1(fileList,dii);</p><p><br></p><p> //此时,fileList存有所有目录(包含子目录)的信息</p><p> Console.WriteLine("共有"+fileList.Count+"个文件夹\n");</p><p> int i = 0;</p><p> //循环去除每个目录的信息</p><p> foreach (DirectoryInfo dif in fileList)</p><p> {</p><p> //取得每个目录的所有文件</p><p> FileInfo[] fils = dif.GetFiles();</p><p> //循环取得每个文件</p><p> foreach (FileInfo fil in fils)</p><p> {</p><p> //后缀名为html的文件</p><p> if(fil.FullName.Contains((".html")))</p><p> {</p><p> //取得文件内容</p><p> ReplaceText(fil.FullName.ToString());</p><p> //把每个文件的信息存入集合</p><p> htmlList.Add(fil);</p><p> //输出文件目录与显示总共有多少个文件</p><p> Console.WriteLine(fil.FullName+"---"+ ++i);</p><p> }</p><p> }</p><p> }</p><p> Console.WriteLine("该文件夹及其所有子文件夹下共有"+htmlList.Count+"个文件\n");</p><p> Console.WriteLine("替换成功!");</p><p> Console.ReadKey();</p><p> }</p><p><br></p><p><br></p><p> public static void GetFileUrl1(List<DirectoryInfo> fileList, DirectoryInfo[] dir)</p><p> {</p><p> //取得子目录中的子目录</p><p> foreach (DirectoryInfo dif in dir)</p><p> {</p><p> //把子目路信息存到集合</p><p> fileList.Add(dif);</p><p> //取得子目录中的子目录</p><p> DirectoryInfo[] dii1 = dif.GetDirectories();</p><p> //要是子目录中还有目录,则取得子目录中的子目录</p><p> if (dii1.Length>0)</p><p> {</p><p> GetFileUrl1(fileList,dii1);</p><p> }</p><p> }</p><p> }</p><p><br></p><p> public static void ReplaceText(string s)</p><p> {</p><p> string path = s;</p><p> string con = "";</p><p> //取得文件的内容</p><p> FileStream fs=new FileStream(path,FileMode.Open,FileAccess.Read);</p><p> StreamReader sr = new StreamReader(fs, Encoding.GetEncoding("gb2312"),true);</p><p> con = sr.ReadToEnd();</p><p> //替换内容</p><p> con = con.Replace("http:","");</p><p> sr.Close();</p><p> fs.Close();</p><p><br></p><p> //取得文件的内容</p><p> FileStream fs2 = new FileStream(path,FileMode.Open,FileAccess.Write);</p><p> StreamWriter sw=new StreamWriter(fs2, Encoding.UTF8);</p><p> //把替换后的文本内容存到文本中</p><p> sw.WriteLine(con);</p><p> sw.Close();</p><p> fs2.Close();</p><p><br></p><p> }</p><p> }</p><p>}</p><p>--------------------- </p><p>作者:清--水 </p><p>来源:CSDN </p><p>原文:https://blog.csdn.net/yh12346789/article/details/80146687 </p><p></p>
页:
[1]