2

ファイルの最後の10文字を削除したい。文字列"hello i am a c# learner"がファイル内のデータであるとします。

そのファイルを。にしたいだけです"hello i am a "。文字列であるファイルの最後の10文字は、ファイル"c# learner"内で削除する必要があります。

解決:

  1. ファイル全体を文字列に読み込み、最後の10文字を削除して文字列を書き戻します(ただし、ファイルサイズが大きすぎる場合、たとえば200 MBのファイルの場合、このアプローチは失敗します。最後の文字だけが必要な場合は、ファイル全体を読み取る必要はありません。 10文字なので、このアプローチを試すことができませんでした)

  2. 書き込みモードでファイルを開き、カーソル位置をこのように設定しfile.seek(-10,SeekOrigin.End)て空のバイトを書き込むことを考えましたfile.writebye((byte)((char)' '));

しかし、ファイルには何も書き込まれていないようです。

ファイル全体を文字列に読み込むのではなく、アプローチするためのより良い方法を誰かに教えてもらえますか?

これを行うためにc#を使用しています

4

3 に答える 3

8

ファイルパスがテキストボックスにある場合:

FileStream fs = new FileStream(textBox1.Text, FileMode.Open, FileAccess.ReadWrite);
fs.SetLength(fs.Length - 10);
fs.Close();
于 2013-03-09T15:26:37.683 に答える
1

たぶん、あなたはそのようなことを試すことができますか?

yourString = yourString.Remove(yourString.Length -10);
于 2013-03-09T15:23:08.950 に答える
1

(FileInfo を使用して) ファイル サイズを取得し、(FileStream を使用して) ファイルを開き、その長さを目的のサイズに設定します。

于 2013-03-09T15:16:31.820 に答える