收缩文件

shrinking file

本文关键字:文件      更新时间:2023-10-16
如何使用

fstream 剪切文件末尾留下的不必要的空间?我有一个 ~250mb 大的二进制文件,经过某些操作后,文件中还剩下 ~100mb 的数据(在开始时)。但是,该文件仍然是 250mb。如何释放磁盘空间?

它使用以下方法按顺序写入文件的许多相同结构:

fstream::write((char *)data_struct,sizeof(data_struct));

有时不再需要文件末尾的结构。

文件流不支持截断,除非打开时。您需要关闭它,然后使用特定于操作系统的方法来设置精确的长度。对于 Windows 和 Linux,即:

窗户:SetEndOfFile()

Linux: truncate()/ftruncate()