fstream - 缩小文件

时间:2015-06-11 08:49:17

标签: c++ fstream

如何使用fstream剪切文件末尾留下的不必要空间? 我有一个大约250mb的二进制文件,在某些操作之后,我留下了大约100mb的数据(在开头)。但是文件仍然是250mb。如何释放磁盘空间?

使用以下命令将大量相同的结构顺序写入文件:

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

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

1 个答案:

答案 0 :(得分:1)

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

Windows:SetEndOfFile()

Linux:truncate()/ftruncate()