2

注: FileMode.Create または FileMode.Truncate は使用できません。不要な問題が発生する可能性があるためです。

 byte[] data = new UTF8Encoding().GetBytes(this.Box.Text);
                FileStream f = File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
f.Write(data, 0, data.Length);
                f.Close();

これにより、古いテキストの上に新しいテキストが追加されます。どうすればすべてを上書きできますか?

4

1 に答える 1

0

あなたのコード

byte[] data = new UTF8Encoding().GetBytes(this.Box.Text); FileStream f = File.Open(path, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite); f.Write(data, 0, data.Length); f.Close();

どうしてこんなことが出来ないんだろう..? 使えない理由を教えてくださいFileMode.Create

byte[] data = new UTF8Encoding().GetBytes(this.Box.Text);
using(Stream f = File.Open(path, FileMode.Write)) 
{
   f.Write(data, 0, data.Length);
}

次のようなこともできます

1. Let the users write to the same file
2. capture the users Machine Name or User Id then
2. write a line in your file like this 

strSeprate = new string('*',25); 
//will write to the file "*************************";
f.Write(strSeprate);
f.Write(Machine Name or UserId);
f.Write(data);
f.Write(DateTime.Now.ToString());
f.Write(strSeprate);

ただのアイデア..

于 2013-01-11T01:16:42.777 に答える