16

私は C# を使用しており、数行を ASCII ファイルに出力しようとしています。私が抱えている問題は、Linux ホストがこれらのファイルを次のように認識していることです。

ASCII text, with CRLF line terminators

このファイルは次のようにする必要があります。

ASCII text

CRLF はいくつかの問題を引き起こしています。私は、C# で希望どおりにフォーマットされたファイルを作成する方法があることを望んでいました。

私は基本的にこのコードを使用しています:

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

CRLF 行末記号なしでファイルを作成する簡単な方法はありますか? おそらく Linux 側で対処できますが、最初から適切な形式でファイルを作成するだけです。

4

2 に答える 2

38

それでも実際に改行が必要であると仮定すると、キャリッジ リターン/ライン フィードの代わりにライン フィードが必要な場合は、次を使用できます。

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

または、最後の行の後に改行が必要な場合:

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

(または、あなたが言うように、Linux 側で修正することもできます。たとえば、dos2unix.)

于 2012-06-11T22:35:54.577 に答える