将文件加载到数组中然后保存回文件

时间:2015-07-16 02:09:27

标签: c#

我正在尝试将文件和内容加载到数组中,然后在文件中的某个位置添加一行。例如:

因此,将添加行中的文件加载到此文件中,然后复制回数组并保存。这是我到目前为止的代码,但我不确定如何重建它。

 private void addgsc()
    {
        string[] lines = System.IO.File.ReadAllLines
     (modspath + "//maps//_zombiemode_weapons.gsc");

        int index = -1; // Where to insert the new line.

        List<string> newLines = new List<string>();
        for (int i = 0; i < lines.Length; i++)
        {
            newLines.Add(lines[i]);
            if (lines[i].Contains("add_zombie_weapon"))
                index = i + 1;
        }

        if (index > -1)
        {
            newLines.Insert(index, "test 21");
        }
        string[] rebulidarr = newLines.ToArray();

2 个答案:

答案 0 :(得分:1)

尝试这样做:

var newlines =
    from line in File.ReadAllLines("source_filename.txt")
    from newline in new []
    {
        line,
        line.Contains("add_zombie_weapon") ? "test 21 " : null
    }
    where newline != null;
    select newline;

File.WriteAllLines("destination_filename.txt", newlines);

答案 1 :(得分:1)

看起来有一系列add_zombie_weapon()行,您想在该部分的末尾添加一些内容吗?

如果是这样,请尝试以下方法:

    private void addgsc()
    {
        string file = modspath + "//maps//_zombiemode_weapons.gsc";
        List<string> lines = new List<string>(System.IO.File.ReadAllLines(file));
        int index = lines.FindLastIndex(item => item.Contains("add_zombie_weapon"));
        if (index != -1)
        {
            lines.Insert(index + 1, "test 21");
        }
        System.IO.File.WriteAllLines(file, lines);
    }