2012-12-28 15 views
6

私はテキストファイルを書き込みます。書き込みするたびに、をクリアします。テキストファイル。書き込み前に前のすべてのテキストを削除します。

try 
{ 
    string fileName = "Profile//" + comboboxSelectProfile.SelectedItem.ToString() + ".txt"; 
    using (StreamWriter sw = new StreamWriter(("Default//DefaultProfile.txt").ToString(), true)) 
    { 
     sw.WriteLine(fileName); 
     MessageBox.Show("Default is set!"); 
    } 
    DefaultFileName = "Default//DefaultProfile.txt"; 
} 
catch 
{ 
} 

どうすればよいですか?以前のすべてのコンテンツをDefaultProfile.txtから削除したいと思います。

実際には、テキストファイルからすべてのコンテンツを削除する方法または方法(名前のみ)を知っている必要があります。

+0

簡単な方法でデータを取得し、ファイルを削除して新しいファイルを作成することができます。もっと良い方法はありますか? –

+0

私は、これは単純に[ソリューション]だと思う[1] [1]:http://stackoverflow.com/a/24933010/2374691 – Ritwik

答えて

11

あなただけの既存のファイルに空の文字列を記述することができます。

File.WriteAllText(@"Default\DefaultProfile.txt", String.Empty); 

またはファイルにを追加する代わりにファイルの内容を置き換えfalseStreamWriterコンストラクタの2番目のパラメータを変更します。あなたは切り捨て方法

FileInfo fi = new FileInfo(@"Default\DefaultProfile.txt"); 
using(TextWriter txtWriter = new StreamWriter(fi.Open(FileMode.Truncate))) 
{ 
    txtWriter.Write("Write your line or content here"); 
} 
+1

おかげで、それは私のために働きました。 –

0

System.IO.File.Delete、またはFileMode.Create

9

を指定System.IO.FileStreamコンストラクタのオーバーロードの1は、StreamWriterのコンストラクタのブール値のパラメータを使用することです。 falseに設定すると、現在の操作でファイルが上書きされます。たとえば、数学演算の出力をテキストファイルに保存する必要がありました。私は、テキストファイルで現在の答えだけを必要とするたびに。したがって、最初のStreamWriter操作では、ブール値をfalseに設定し、その後の呼び出しではbool valをtrueに設定しました。その結果、新しい操作ごとに前の回答が上書きされ、新しい回答のみが表示されます。

 int div = num1/denominator; 
     int mod = num1 % denominator; 
     Console.Write(div); 
     using (StreamWriter writer = new StreamWriter(FILE_NAME, false)) 
     { 
      writer.Write(div); 
     } 
     Console.Write("."); 
     using (StreamWriter writer = new StreamWriter(FILE_NAME, true)) 
     { 
      writer.Write("."); 
     }  
5

で最も簡単で効率的な技術を見ることができます

0

FileMode.Truncateを使用できます。コードは次のようになります

関連する問題