是否有一种简单的方法来修剪文件?

时间:2011-10-03 22:35:04

标签: .net vb.net file-io

我有一个大文件(通常超过1GB),格式如下:

  

[标题信息,128字节] [内容,1GB]

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

更新

标题位于文件的开头

3 个答案:

答案 0 :(得分:4)

如果标题位于文件的开头,那么在不完全重写整个文件的情况下根本无法删除该标题。这只是文件系统的本质。

这个难题的明显解决方案是将标题放在文件的末尾。剥离文件末尾是一项微不足道的操作。另一种选择是将标题放在单独的文件中,甚至放在备用文件流中。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

因此,您无法从文件的开头修剪任意数量的数据。即使修剪等于块大小的数据量也不会通过我所知道的任何API公开。