如何附加到文件中的文本

时间:2014-06-18 17:03:04

标签: c# file

我有一个文件,其中包含以下内容:

#Mon Jun 16 14:47:57 EDT 2014
DownloadDir=download
UserID=1111113
InputURL=https\://sdfsfd.com
DBID=1212
VerificationURL=https\://check.a.com
DownloadListFile=some.lst
UploadListFile=some1.lst
OutputURL=https\://sd.com
Password=bvfSDS3232sdCFFR

我想打开文件并修改内容,将|TEST ONLY添加到UserID的末尾。编辑过的文件将是:

#Mon Jun 16 14:47:57 EDT 2014
DownloadDir=download
UserID=1111113|TEST ONLY
InputURL=https\://sdfsfd.com
DBID=1212
VerificationURL=https\://check.a.com
DownloadListFile=some.lst
UploadListFile=some1.lst
OutputURL=https\://sd.com
Password=bvfSDS3232sdCFFR

我怎样才能实现它?

到目前为止,我能够读取文件中的所有行。这就是我所拥有的:

if (File.Exists(strRootPropertyFile))
{
    string[] lines = null;
    try
    {
        lines = File.ReadAllLines(strRootPropertyFile);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

    if (lines != null)
    {
        //find the line with the UserID
        //add `|TEST ONLY` at the end of the UserID
        //Overwrite the file...
    }
}

2 个答案:

答案 0 :(得分:4)

您可以在行之间循环并检查该行是否以"UserID="字符串开头并添加您需要的字符串。之后,创建一个新文件并使用File.WriteAllText()方法覆盖当前文件,并使用string.Join(中断行)作为分隔符Environment.NewLine

if (File.Exists(strRootPropertyFile))
{
    string[] lines = null;
    try
    {
        lines = File.ReadAllLines(strRootPropertyFile);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }

    if (lines != null)
    {
        for(int i = 0; i < lines.Length; i++)
            if (lines[i].StartWith("UserID="))
                lines[i] += "|TEST ONLY";               

        File.WriteAllText(strRootPropertyFile, string.Join(Environment.NewLine, lines));
    }
}

答案 1 :(得分:1)

我认为最好的办法是:

  • 逐行阅读文件
  • 将可能已修改的行写入另一个文件。
  • 删除原始的。
  • 重命名新文件!