【问题标题】:fstream - shrinking file [duplicate]fstream - 缩小文件[重复]
【发布时间】:2015-06-11 08:49:17
【问题描述】:

如何使用 fstream 减少文件末尾多余的空间? 我有一个~250mb 大的二进制文件,经过某些操作后,我在文件中留下了~100mb 的数据(在开始时)。然而,该文件仍然是 250mb。如何释放磁盘空间?

这是许多相同的结构按顺序写入文件:

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

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

【问题讨论】:

  • 没有通用的解决方案...我们不知道你的文件结构
  • @Vinzenz 只是将许多相同的结构按顺序写入文件(使用fstream::write((char *)data_struct,sizeof(data_struct)),有时不再需要文件末尾的结构。

标签: c++ fstream


【解决方案1】:

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

Windows:SetEndOfFile()

Linux:truncate()/ftruncate()

【讨论】:

    猜你喜欢
    • 2011-07-31
    • 2013-03-18
    • 2010-10-27
    • 1970-01-01
    • 2013-07-15
    • 2012-10-23
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多