我们可以减少现有文件的大小吗?

San*_*ale 2 c c++ file-io fstream file-handling

我想知道是否可以减少文本或二进制文件的大小而不创建临时文件.这样我们就可以删除文件末尾的数据.

如果是,那么如何.如果没有那么为什么.

mvp*_*mvp 7

是的,您可以使用POSIX系统上可用的文件大小truncate()或减少文件大小ftruncate().

对于Windows,用于SetFilePointer将当前位置设置为所需的文件大小,然后调用SetEndOfFile以实际截断它.

  • 您还可以提到`C++ 17`的新(标准)*文件系统*选项:https://en.cppreference.com/w/cpp/filesystem/resize_file (2认同)