6

最初の実行では、私のプログラムは最初の行でcsvファイルに書き込みますが、2回目..3回目にプログラムを実行すると、最初の行で実行されます..どうすれば修正できますか?

プログラムへのすべての入力を CSV ファイルで入力したいと考えています。

コードは次のとおりです。

private void WriteToCsvFile()
{
    var us = users.ElementAt(0);
    string names = "Number',";
    string userAnswer = (us.userName + ",");
    foreach (string ss in user)
    {
        string str = Path.GetFileName(ss);
        names = names + str + ",";
    }
    foreach (string ans in us.answer)
    {
        userAnswer = userAnswer + ans + ",";
    }

    using (StreamWriter sw = new StreamWriter("EntranceLog.csv"))
    {
        sw.WriteLine(names);
        sw.WriteLine(userAnswer);

    }

    this.Close();
}
4

2 に答える 2

3

trueコンストラクターにパラメーターを追加します。

using (StreamWriter sw = new StreamWriter("EntranceLog.csv", true))

という名前の 2 番目のパラメーターappendは、既存のファイルを上書きするか追加するかを制御します。MSDNの状態:

trueファイルにデータを追加します。falseファイルを上書きします。指定されたファイルが存在しない場合、このパラメーターは効果がなく、コンストラクターは新しいファイルを作成します。

于 2012-10-28T09:13:33.147 に答える
0

実行するたびに、同じ名前の新しいファイルが作成され、古いファイルが上書きされます。これは、使用している特定のコンストラクターのデフォルトの動作です。

代わりにこのコンストラクターを使用し、appendパラメーターをtrue次のように指定します。

using (StreamWriter sw = new StreamWriter("EntranceLog.csv", true))
{
    // write your file as normal
}
于 2012-10-28T09:16:22.020 に答える