删除文件的最后10个字符
问题描述:
我想删除文件的最后10个字符。说一个字符串"hello i am a c# learner"
是文件内部的数据。删除文件的最后10个字符
我只是想要那个文件是"hello i am a "
。该文件的最后10个字符是字符串"c# learner"
应该在文件内消除。
解决方案:
将整个文件读入一个字符串,并删除这些最后的10个字符和写回的字符串(但是当文件体积过大这一方法未能说出一些200 MB的文件当我们只需要最后10个字符时,它甚至是不必要的读取整个文件的方法,所以我不能尝试这种方法)
我认为要在写入模式下打开文件,并设置光标位置像这样
file.seek(-10,SeekOrigin.End)
并写空字节file.writebye((byte)((char)' '));
但它似乎没有写入任何文件。
任何人都可以告诉我更好的方法来处理它,而不是将整个文件读入字符串。
注意我使用C#这样做
答
获取文件大小(使用的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();
如果你的文件是小,把文件读入一个字符串是一个完全正常的解决方案,尤其是与方式缓冲的作品。它更简单,更容易。如果你的文件真的很大,那现在就是另外一回事了。 – 2013-03-09 15:10:23
@BenjaminGruenbaum我刚刚给了样品。该文件也可能高达200 MB。这取决于用户的选择。谢谢 – niko 2013-03-09 15:11:44