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

           }
       }

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值