c++ - 如何在 Visual C++ 中截断文件?

标签 c++ windows visual-c++ file-io truncate

我有以下情况。我有一个大文件说 1 KB。我想读取前 100 个字节,然后从文件中删除 100 个字节读取数据,然后读取下一个 100 个字节。读取 100 个字节是可以的,但是如何从文件中删除 100 个字节?

最佳答案

这通常作为一个多步骤过程完成:

  1. 重命名原始文件。
  2. 用原来的文件名将你想要的数据写入一个新文件。
  3. 使用包含您不再需要的数据的临时名称删除旧文件。

这样,如果出现问题,您可以简单地恢复您重命名的原始文件。将文件从一个地方移动到另一个地方也是以这种方式实现的。


但是,如果您不想这样做,SetEndOfFile function是另一种就地截断文件内容的可行选项。来自文档:

Sets the physical file size for the specified file to the current position of the file pointer.

The physical file size is also referred to as the end of the file. The SetEndOfFile function can be used to truncate or extend a file.

关于c++ - 如何在 Visual C++ 中截断文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6030072/

相关文章:

windows - 在 Windows 下以访客身份或以有限权限运行应用程序而无需重新登录?

C++ 如何将整数转换为字符串?

c++ - 如何在不复制条目值的情况下在 std::map 中创建新条目 - 无指针

windows - 如何在Windows中的Visual Studio Code task.json中创建目录?

c++ - 兼容模式下 x64 窗口上的 native x32 应用程序与 x32 窗口上的 x32 应用程序之间的区别

c++ - 为什么只检查某些值的错误? (C++?)

c++ - 通过格式化连接 __FILE__ 和 __LINE__ 的宏

c - 将编译代码与 NASM 和 MSVC 链接时 Unresolved reference

c++ - "Ends_with"读取输入文件时函数不工作

c++ - 如何在 MS Windows 中使用 C++ 将快捷方式发送到另一个应用程序?