【问题标题】:Create file using FileMapping使用 FileMapping 创建文件
【发布时间】:2013-11-28 20:53:17
【问题描述】:

下午好。我使用 FileMapping 来读取文件。而现在我需要使用这种技术创建一个文件,但我不知道文件的大小。如果大小未知,如何使用 FileMappimg 创建文件?

【问题讨论】:

  • 使用文件映射创建文件。这是什么意思?
  • @user2996299 为什么不使用 TFileStream?
  • @user2819514,因为文件超过 8Gb。
  • 为什么 8GB 很重要? TFileStream 有一个 64-bit file pointer 像所有 TStream 后代一样 - 它可以处理 巨大 文件。
  • TFileStream 可用于创建大于 8GB 的​​文件。我通过创建一个 25GB 的文件对此进行了测试,以确保这一点。 (XE5 Windows7)

标签: delphi file-mapping


【解决方案1】:

在调用 CreateFileMapping 时,您必须提前知道文件有多大。所以我想你需要选择一个较大的值,如果空间不足,请关闭该映射,并创建一个具有更大最大尺寸的新映射。这不是很有趣,而且可能效率不高。

您很可能根本没有意识到 Delphi 文件流可以处理具有 64 位文件指针的大文件。也许您有使用映射的性能原因。在这种情况下,您只需要一个缓冲流,其中有许多免费可用的示例。

【讨论】:

    猜你喜欢
    • 2013-04-15
    • 2018-07-29
    • 2015-10-26
    • 2016-01-28
    • 2020-11-11
    • 2018-02-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-02
    相关资源
    最近更新 更多