2013-03-09 56 views
2

我想刪除文件的最後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

回答

1

獲取文件大小(使用的FileInfo),打開文件(使用的FileStream)和它的長度設定爲所需的大小。

1

也許你可以嘗試這樣的事情?

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

如果filepath是在文本框中:

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