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

获取文件大小(使用 FileInfo),打开文件(使用 FileStream)并将其 Length 设置为所需的大小。

于 2013-03-09T15:16:31.820 回答
1

也许你可以尝试这样的事情?

yourString = yourString.Remove(yourString.Length -10);
于 2013-03-09T15:23:08.950 回答