2016-11-19 13 views
0
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ファイルに古いデータを保存しない限り、これはうまくいきます。データを削除するのではなく、単にデータに追加するだけで、これをどのように変更できますか?csvファイルに書き込むことはできますが、追加することはできません。

+1

なぜFile.AppendAllText()を使用できないのですか? –

+0

ファイルは毎回上書きされています。なぜなら、それは 'CreateText'のためです。 https://msdn.microsoft.com/en-us/library/system.io.file.createtext(v=vs.110).aspxから、 このメソッドは、StreamWriter(String、Boolean)コンストラクターappendパラメータをfalseに設定してオーバーロードします。 pathで指定されたファイルが存在しない場合は作成されます。ファイルが存在する場合、その内容は上書きされます。追加のスレッドは、ファイルが開いているときにそのファイルを読み取ることができます。 – jac

答えて

1

File.CreateText Method (String)

この方法は、偽に設定アペンドパラメータとStreamWriter(String, Boolean コンストラクタのオーバーロードに相当します。 pathで指定された ファイルが存在しない場合は、が作成されます。 ファイルに が存在する場合は、その内容が上書きされます。ファイルが開かれている間は、ファイルを読み取るために追加のスレッドに が許可されます。

StreamWriter Constructor (String, Boolean)

ここでは二番目のパラメータは、ファイルにデータを追加する場合はtrue;ファイルを上書きする場合はfalseを返します。

各メソッドのドキュメントをチェックすると、質問の答えがわかりにくく、ファイルを追加する必要がある場合はsuggetionがあります。 StreamWriterコンストラクタをpathおよびappendパラメータで使用する(true)

2

StreamWriterクラスでお試しください。

ファイルが存在する場合は、上書きまたは追加することができます。ファイルが存在しない場合、このコンストラクタは新しいファイルを作成します。代わりに、あなたは、コンストラクタでを渡すと、それはファイルにテキストを追加する必要があり

TextWriter writer = new StreamWriter(filePath, true);

を使用する TextWriter writer = File.CreateText(filePath)試みを使用して

関連する問題