2016-11-19 1 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])); 
      } 
     } 

따라서 momement에서는 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)

이 방법 거짓으로 설정 APPEND 파라미터와 StreamWriter(String, Boolean) 생성자 과부하 동등하다. 경로로 지정된 파일이없는 경우으로 생성됩니다. 파일에 이 있으면 해당 내용이 덮어 쓰기입니다. 파일이 열려있는 동안 추가 스레드에 파일을 읽을 수 있습니다.

StreamWriter Constructor (String, Boolean)

여기서 두번째 파라미터 파일에 데이터를 추가하는 경우는 true 파일을 덮어 쓰려면 false입니다.

각 방법에 대한 문서를 확인하는 경우 사용자의 질문에 대한 답변을 명확하게 말하면서 파일을 추가해야 할 경우를 대비하여 의견을 말합니다. StreamWriter 생성자를 경로 및 추가 매개 변수 (true)와 함께 사용하십시오.

2

StreamWriter 클래스로 시도해주세요.

파일이있는 경우 덮어 쓰거나 첨부 할 수 있습니다. 파일이 존재하지 않으면이 생성자는 새 파일을 만듭니다. 대신 TextWriter writer = File.CreateText(filePath)를 사용

당신이 파일에 텍스트를 추가해야 생성자에서 사실을 전달하면

TextWriter writer = new StreamWriter(filePath, true);

를 사용하려고합니다.

관련 문제