2012-06-11 11 views
11

저는 C#을 사용 중이며 ASCII 파일에 몇 줄을 출력하려고합니다.CRLF없이 C#에서 줄 바꿈하는 방법

ASCII text 

을 CRLF가 몇 가지 문제를 일으키는하고 내가 거기에 기대했다 :

ASCII text, with CRLF line terminators 

난 그냥 수 있도록이 파일이 필요합니다 : 나는 데 문제는 내 리눅스 호스트가 이러한 파일을보고있는 것입니다 C#에서 내가 원하는 방식으로 포맷 된 파일을 만드는 방법이었습니다.

string[] lines = { "Line1", "Line2" }; 
File.WriteAllLines(myOutputFile, lines, System.Text.Encoding.UTF8); 

CRLF 라인 종결 자없이 파일을 생성 할 수있는 쉬운 방법이 있나요 :

나는 기본적으로이 코드를 사용하고 있습니다? 아마 리눅스 쪽에서 처리 할 수는 있지만 처음부터 올바른 형식으로 파일을 작성하는 것이 좋습니다.

+0

을 호기심 : 당신은 많은 지식/E가 있습니까 xperience ASCII 또는 C# 문자열/문자 값을 내부적으로 저장하는 방법? – lyrisey

+0

@mikurski, C#에서 내부적으로 값을 저장하는 방법에 대한 지식이 많지 않습니다. – jared

+0

String 클래스에 대한 MSDN .NET 설명서가 특히 Replace() 메서드와 같이 유용 할 수 있습니다. 참조 http://msdn.microsoft.com/en-us/library/system.string.aspx – lyrisey

답변

29

실제로 바꿈을하려면, 당신은 단지 라인 대신 캐리지 리턴/라인 피드의 피드 원하는 여전히 당신을 가정 할 때, 당신은 사용할 수 있습니다

File.WriteAllText(myOutputFile, string.Join("\n", lines)); 

또는 당신은 확실히 너무 마지막 줄 뒤에 줄 바꿈을 원하는 경우 :

File.WriteAllText(myOutputFile, string.Join("\n", lines) + "\n"); 

(당신이 말한대로 또는, 당신은 dos2unix와 예, 리눅스 측에서 문제를 해결할 수 있습니다.)

+0

나는 File.WriteAllText (myOutputFile, string.Join ("\ n", lines) + " \엔"); 왜냐하면 string, Join은 원소들 사이에 구분자를 배치하지만, 모든 원소의 끝 뒤에 구분자가 있어야합니다. 그렇지 않으면 마지막 줄을 잃게됩니다. –

+0

@KenBoorom : "단락 기호는 모든 요소의 끝 뒤에 있어야합니다. 그렇지 않으면 마지막 줄을 잃게됩니다." - 당신은 마지막 줄을 잃지 않을 것이고, 끝에 줄 바꿈이 없을 것입니다. 나는 그것을 옵션으로 추가 할 것이다. –