是否有.NET 3.5相当于4.0的AppendAllLines?

时间:2013-10-31 20:04:56

标签: c# .net io

var output = DataList.Select(x => x.blah blah blah); 
string outputFilePath = @"C:\output.txt";
File.AppendAllLines(outputFilePath, output);

我的上面的.NET 4代码放在一个迭代几次的for / next循环中,所以附加是必要的(而不是覆盖/重写)。现在,我被告知我必须使用.NET 3.5而AppendAllLines吐出错误'System.IO.File'不包含AppendAllLines的定义。

有没有人知道一个修复程序,它不需要我太彻底地更改现有代码并使用.NET 3.5?

2 个答案:

答案 0 :(得分:6)

File.AppendAllText可用。

var output = string.Join(Environment.NewLine, DataList.Select(x => x.blah blah blah).ToArray());
string outputFilePath = @"C:\output.txt";
File.AppendAllText(outputFilePath, output);

应该有效,string.Join需要stringstring[]

答案 1 :(得分:3)

框架中没有任何内容可以使用正确的流式传输来完成,但您可以轻松编写自己的方法:

public static void AppendAllLines(string path, IEnumerable<string> lines)
{
    using (var writer = new StreamWriter(path, true))
        foreach (var line in lines)
            writer.WriteLine(line);
}