2011-06-18 16 views
4

以下のメソッドは、出力ファイル(process.txt)を上書きしますか?C# - File.WriteAllLinesの使用

private static void CompareOrig() 
{ 

    File.WriteAllLines("process.txt", 
    File.ReadAllLines("process2.txt").Except(File.ReadAllLines("process.txt"))); 

} 

追加情報:

問題は行がprocess2.txtから読み込まれたときに、彼らはので、そのファイル内のすべての既存のデータを上書きし、process.txtファイルに書き込まれていることです。代わりに、どのように出力をprocess.txtに追加することができますか?例えば

File.AppendAllText("process.txt") 
+1

これは本当に簡単なので - なぜあなたはそれを自分を試してみませんか? その場合は、すべての行を変数に読み込んでから、新しいデータを書き直してください。 –

+1

AppendAllText、AppendAllLinesは既存のメソッドです。 –

+0

@Henk Holtermanありがとう、私はAppendAllLinesを使用しました – James

答えて

4

以下の方法は、出力ファイル(process.txt)を上書きしますか?

はい

もしそうなら、どのようにこれを回避することができますか?

書き込み用に別のファイル名を使用します。

"完全に読み込まれる前に上書きされますか"を意味する場合、答えはいいえ、問題はありません。

これを1つまたは2つの変数に分割すると、はるかに読みやすくなります。それがあなたを疑わせるならば、それは読者を作るでしょう。何度も何度も繰り返します。

+0

ありがとう、どのように私は "追加"またはファイルを追加することができますか? – James

+0

ファイルI/Oまたは微妙なC#シーケンスの問題については、あなたの質問ですか?どうぞよろしくお願いします。あなたの質問の下に_Edit_リンクがあります。 –

+0

こんにちは、もう少し質問を明確にするために更新しました – James

-1

少し古いですが、誰でも読んでください。 既存ファイルにのみ追加したい場合。

File.WriteLine("Text"); 

代わりの

File.WriteAllLines("Text);