如何使用fstream剪切文件末尾留下的不必要空间? 我有一个大约250mb的二进制文件,在某些操作之后,我留下了大约100mb的数据(在开头)。但是文件仍然是250mb。如何释放磁盘空间?
使用以下命令将大量相同的结构顺序写入文件:
fstream::write((char *)data_struct,sizeof(data_struct));
有时不再需要文件末尾的结构。
答案 0 :(得分:1)
文件流不支持截断,除非在打开时。您需要关闭它,然后使用特定于操作系统的方法来设置精确的长度。对于Windows和Linux:
Windows:SetEndOfFile()
Linux:truncate()/ftruncate()