12

私はテキストファイルを書いています、そして私が書くたびに私はテキストファイルをクリアしたいと思います。

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から以前のすべてのコンテンツを削除したい。

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

4

6 に答える 6

22

既存のファイルに空の文字列を書き込むだけです。

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

StreamWriterまたは、コンストラクターの 2 番目のパラメーターを に変更して、ファイルに追加するのではなく、ファイルの内容false置き換えます。

于 2012-12-28T15:07:55.663 に答える
13

Truncateメソッドを見ることができます

FileInfo fi = new FileInfo(@"Default\DefaultProfile.txt");
using(TextWriter txtWriter = new StreamWriter(fi.Open(FileMode.Truncate)))
{
    txtWriter.Write("Write your line or content here");
}
于 2012-12-28T15:11:45.837 に答える
6

最も簡単で効率的な手法は、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(".");
        }       
于 2014-05-04T02:52:42.240 に答える
1

System.IO.File.Delete、またはSystem.IO.FileStream指定するコンストラクターのオーバーロードの 1 つFileMode.Create

于 2012-12-28T15:08:01.140 に答える