【问题标题】:Can write to csv file but not append可以写入 csv 文件但不能追加
【发布时间】:2017-04-02 22:50:48
【问题描述】:
string pathDesktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
        string filePath = pathDesktop + "\\mycsvfile.csv";
        string delimter = ",";
        string a = "Enoelpro---[037,033,0,018,030,012,004,021,009,038,035,053,044,050,074,F,018,010,070,000]<Vulpix>[-][037,034,0,022,020,029,002,008,024,036,046,049,041,057,077,F,018,005,070,000]<Vulpix>[-] cual es mejor??";
        List<string[]> test = conv(a,"testrainer");
        int length = test.Count;

        using (TextWriter writer = File.CreateText(filePath))
        {
            for (int index = 0; index < length; index++)
            {
                writer.WriteLine(string.Join(delimter, test[index]));
            }
        }

因此,目前,这可以正常工作,只是它不会将旧数据保留在 csv 文件中。我怎样才能修改它,而不是删除数据,它只是附加到数据?

【问题讨论】:

  • 为什么不能使用File.AppendAllText()
  • 文件每次都被覆盖,因为 CreateText 就是这样做的。从msdn.microsoft.com/en-us/library/… 开始,此方法等效于将 append 参数设置为 false 的 StreamWriter(String, Boolean) 构造函数重载。如果 path 指定的文件不存在,则创建该文件。如果文件确实存在,则其内容将被覆盖。文件打开时允许其他线程读取文件。

标签: c# csv export-to-csv


【解决方案1】:

你能试试StreamWriter类吗?

如果文件存在,它可以被覆盖或附加到。如果文件不存在,则此构造函数会创建一个新文件。

改为使用 TextWriter writer = File.CreateText(filePath)尝试使用

TextWriter writer = new StreamWriter(filePath, true);

如果您在构造函数中传递 true,它应该将文本附加到文件中。

【讨论】:

    【解决方案2】:

    File.CreateText Method (String)

    这个方法等价于StreamWriter(String, Boolean) 附加参数设置为 false 的构造函数重载。 如果 路径指定的文件不存在,已创建如果文件没有 存在,其内容被覆盖。允许额外的线程 在文件打开时读取文件。

    StreamWriter Constructor (String, Boolean)

    这里的第二个参数,true 将数据追加到文件中; false 覆盖文件。

    如果您检查每种方法的文档,它会清楚地说明您的问题的答案,并且如果您需要附加文件,还有一个建议。使用带有路径和附加参数的 StreamWriter 构造函数 (true)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-08
      • 2023-03-16
      • 2011-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多