C# 替换文本文件中的某一行 (要求此文件存在)

     /// <summary>

       /// LineIndex 表示新的内容所在的行位置

       /// </summary>

       /// <param name="sFileName"></param>

       /// <param name="sOrigionContent"></param>

       /// <param name="sNewLineContent"></param>

       /// <param name="LineIndex"></param>

       public static void SaveTxtReplaceOneLine(string sFileName, string sOrigionContent, string sNewLineContent, int iNewLineIndex)

       {

           try

           {

               StringBuilder sbNewSave = new StringBuilder();

               sFileName = sFileName.Replace("|", "_");

               string sFolder = Directory.GetParent(sFileName).ToString();

               if (!System.IO.Directory.Exists(sFolder))

               {

                   System.IO.Directory.CreateDirectory(sFolder);

               }



               if (!System.IO.File.Exists(sFileName))

               {

                   throw new Exception("file not exist");

               }



               string[] arrLine = sOrigionContent.Trim().Split(Convert.ToChar(Keys.Return));

               for (int i = 0; i < iNewLineIndex; i++)

               {

                   sbNewSave.AppendLine(arrLine[i].Trim('\r').Trim('\n'));

               }

               sbNewSave.AppendLine(sNewLineContent);

               for (int i = iNewLineIndex + 1; i < arrLine.Length; i++)

               {

                   sbNewSave.AppendLine(arrLine[i].Trim('\r').Trim('\n'));

               }



               FileStream fsTxtWrite = new FileStream(sFileName, FileMode.Create, FileAccess.Write);

               StreamWriter srWrite = new StreamWriter(fsTxtWrite, System.Text.Encoding.UTF8);

               //StreamWriter srWrite = new StreamWriter(fsTxtWrite, System.Text.Encoding.Default);



               srWrite.Write(sbNewSave.ToString().Trim());



               srWrite.Close();

               srWrite.Dispose();

               fsTxtWrite.Dispose();



           }

           catch (Exception ex)

           {

               //MessageBox.Show(ex.Message);



               #region ### error info

               try

               {

                   string sFolder = Directory.GetParent(sFileName).ToString();

                   string sErrFullName = sFolder + "_err_" + System.DateTime.Now.ToString("yyyyMMddHHmmss") + ".txt";

                   if (!System.IO.File.Exists(sErrFullName))

                   {

                       FileStream fs;

                       fs = File.Create(sErrFullName);



                       StreamWriter srWrite = new StreamWriter(fs, System.Text.Encoding.UTF8);



                       srWrite.Write(sFileName);



                       srWrite.Close();

                       srWrite.Dispose();



                       fs.Close();

                   }

               }

               catch (Exception ex2)

               { }

               #endregion ###error



           }

       }


你可能感兴趣的:(文本文件)