删除文件的最后10个字符

问题描述:

我想删除文件的最后10个字符。说一个字符串"hello i am a c# learner"是文件内部的数据。删除文件的最后10个字符

我只是想要那个文件是"hello i am a "。该文件的最后10个字符是字符串"c# learner"应该在文件内消除。

解决方案:

  1. 将整个文件读入一个字符串,并删除这些最后的10个字符和写回的字符串(但是当文件体积过大这一方法未能说出一些200 MB的文件当我们只需要最后10个字符时,它甚至是不必要的读取整个文件的方法,所以我不能尝试这种方法)

  2. 我认为要在写入模式下打开文件,并设置光标位置像这样file.seek(-10,SeekOrigin.End)并写空字节file.writebye((byte)((char)' '));

但它似乎没有写入任何文件。

任何人都可以告诉我更好的方法来处理它,而不是将整个文件读入字符串。

注意我使用C#这样做

+0

如果你的文件是小,把文件读入一个字符串是一个完全正常的解决方案,尤其是与方式缓冲的作品。它更简单,更容易。如果你的文件真的很大,那现在就是另外一回事了。 – 2013-03-09 15:10:23

+0

@BenjaminGruenbaum我刚刚给了样品。该文件也可能高达200 MB。这取决于用户的选择。谢谢 – niko 2013-03-09 15:11:44

获取文件大小(使用的FileInfo),打开文件(使用的FileStream)和它的长度设定为所需的大小。

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

yourString = yourString.Remove(yourString.Length -10); 

如果filepath是在文本框中:

FileStream fs = new FileStream(textBox1.Text, FileMode.Open, FileAccess.ReadWrite); 
fs.SetLength(fs.Length - 10); 
fs.Close();