2011-10-03 106 views
0

我有一個大的文件(通常超過1GB)用下面的格式:有沒有簡單的方法來修剪文件?

[頭信息,128個字節] [內容,1GB]

我的問題:是否有一個簡單的方法來修剪標題信息,而不必讀取內容部分並再次保存到磁盤?我的意思是我只需要修改現有的文件並刪除標題部分。

更新:

標題是在文件

+0

你想修改文件嗎?所以它是128字節長?如果是這樣,在FileStream上調用SetLength並完成。 –

+0

@David Heffernan:修改現有文件,使文件只包含內容部分 – user774411

回答

1

從文件系統的角度來看,文件內容只是一系列的塊。儘管文件系統通常在最後一個塊中允許一些「鬆弛」(即未使用的空間)(以容納不是塊大小倍數的文件大小),但文件系統的結構並不容許在第一個塊中允許任何 。換句話說,文件內容必須從第一個塊的開始處開始。

因此,您不能從文件的開頭修剪任意數量的數據。即使修剪與塊大小相等的數據量也不會通過我知道的任何API暴露。

4

的開始。如果標題是在文件的開頭那是根本不可能去除頭沒有完全重新編寫整個文件。這只是文件系統的本質。

難題的明顯解決方案是將標題右移到文件末尾。剝離文件結尾是一項簡單的操作。另一種選擇是將標題放在單獨的文件中,甚至是替代文件流中。

1

簡答:不,沒有。內容的每一點都必須移動。

相關問題