2011-10-03 66 views
0

我有一个大的文件(通常超过1GB)用下面的格式:有没有简单的方法来修剪文件?

[头信息,128个字节] [内容,1GB]

我的问题:是否有一个简单的方法来修剪标题信息,而不必读取内容部分并再次保存到磁盘?我的意思是我只需要修改现有的文件并删除标题部分。

更新:

标题是在文件

+0

你想修改文件吗?所以它是128字节长?如果是这样,在FileStream上调用SetLength并完成。 –

+0

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

回答

1

从文件系统的角度来看,文件内容只是一系列的块。尽管文件系统通常在最后一个块中允许一些“松弛”(即未使用的空间)(以容纳不是块大小倍数的文件大小),但文件系统的结构并不容许在第一个块中允许任何 。换句话说,文件内容必须从第一个块的开始处开始。

因此,您不能从文件的开头修剪任意数量的数据。即使修剪与块大小相等的数据量也不会通过我知道的任何API暴露。

4

的开始。如果标题是在文件的开头那是根本不可能去除头没有完全重新编写整个文件。这只是文件系统的本质。

难题的明显解决方案是将标题右移到文件末尾。剥离文件结尾是一项简单的操作。另一种选择是将标题放在单独的文件中,甚至是替代文件流中。

1

简答:不,没有。内容的每一点都必须移动。

相关问题