0

我在控制台应用程序中成功地将数据写入 csv 文件(耶!)。到目前为止,Streamwriter 对我来说非常好。

using (StreamWriter writer = new StreamWriter(file, true))
{
    writer.WriteLine(strToSave);
}

此代码附加到现有文件,或者,如果它不存在,则先创建一个新文件然后写入。

我想要它做的是,如果文件不存在,则创建文件,为 csv 列写入标题行,然后正常写入数据。我怎样才能做到这一点?

谢谢。

4

2 回答 2

6

您可以首先使用方法检查文件是否存在File.Exists()。如果文件已经存在,则不需要写头部,如果存在值是false,则写头部(假设 的头部.csv在变量 中header),然后写你想要的文本。

        bool exists = File.Exists(file);
        using (StreamWriter writer = new StreamWriter(file, true))
        {
            if(!exists)
                writer.WriteLine(header);
            writer.WriteLine(strToSave);
        }
于 2013-03-21T09:48:53.797 回答
0

您可以检查流的长度属性

using(var stream = new FileStream("file.name", FileMode.OpenOrCreate, FileAccess.ReadWrite))
using (var writer = new StreamWriter(stream))
{
    if (stream.Length == 0)
    {
        // Write header here
    }
}
于 2013-03-21T09:51:55.607 回答