2012-06-11 62 views
11

我正在使用C#並試圖將幾行輸出到ASCII文件。我遇到的問題是,我的Linux主機是看到這些文件爲:如何在沒有CRLF的情況下在C#中編寫所有行

ASCII text, with CRLF line terminators 

我需要這個文件只是:

ASCII text 

的CRLF會引起一些問題,我希望有C#中的一種方式就是以我想要的方式創建格式化的文件。

我基本上使用此代碼:

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

有一種簡單的方法來創建沒有CRLF行終止的文件嗎?我可以在Linux端處理它,但是寧可從一開始就以適當的格式創建文件。

+0

出於好奇:你有多少知識/ E使用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"); 

(或者,像你說的,你可以解決它在Linux中,例如用dos2unix。)

+0

我相信上面可能會更好File.WriteAllText(myOutputFile,string.Join(「\ n」,lines)+「 \ n「);因爲string,Join在元素之間放置了分隔符,但是分隔符必須在每個元素結束後纔會出現,否則就會丟失最後一行。 –

+0

@KenBoorom:「但是分隔符必須在每個元素結束後纔會出現,否則就會失去最後一行。」 - 你不會失去最後一行,最終不會有換行符。儘管如此,我還是將其添加爲一個選項。 –

相關問題