IMAPI2可以刻录大小>1的文件吗 4GB?

发布于 2024-07-21 08:02:39 字数 225 浏览 11 评论 0原文

IMAPI2 接口 IFileSystem 使用 COM IStream 接口来表示文件数据。 有 AddTree 方法将指定的目录内容添加到 IFileSystem。 所以AddTree必须在这个过程中创建IStream。 我想知道它使用什么 IStream 实现? 如果它使用标准 OLE 实现,那么我们就会遇到一个棘手的问题,因为 OLE 流不支持大于 4Gb 的文件。

谁能解释一下这个问题?

IMAPI2 interface IFileSystem uses COM IStream interfaces to represent file data. There is AddTree method that adds specified directory contents to IFileSystem. So AddTree must create IStream's in the process. I wonder what implementation of IStream it uses? If it uses the standard OLE implementation than we have a nasty problem because OLE streams doesn't support files bigger than 4Gb.

Can anyone shed some light on this issue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

皇甫轩 2024-07-28 08:02:39

IMAPIv2 将 ISO9660 兼容光盘上的文件大小限制为 2GB。

为了刻录超过 2GB 的文件,您必须设置 UDF 文件系统。

 HRESULT hr = FileSystemImage->put_FileSystemsToCreate( FsiFileSystemUDF );

FsiFileSystems枚举定义了可识别文件系统的值:

typedef enum FsiFileSystems { 
  FsiFileSystemNone     = 0,
  FsiFileSystemISO9660  = 1,
  FsiFileSystemJoliet   = 2,
  FsiFileSystemUDF      = 4,
  FsiFileSystemUnknown  = 0x40000000
} FsiFileSystems;
  • FsiFileSystemNone 光盘不包含可识别的文件系统。
  • FsiFileSystemISO9660 标准 CD 文件系统。
  • FsiFileSystemJoliet Joliet 文件系统。
  • FsiFileSystemUDF UDF 文件系统。
  • FsiFileSystemUnknown 光盘似乎有文件系统,但布局与任何可识别的类型都不匹配。

UDF 本身支持许多现代文件系统功能:

  • 大分区大小(最大 2TB,块大小为 512B,或块大小为 8TB,块大小为 2KB) 64 位文件大小
  • 无大小限制的扩展属性(例如,命名流或分叉)
  • 长文件名 (最大 254 字节,名称中可以出现任何字符)
  • 文件名的 Unicode 编码
  • 稀疏文件
  • 硬链接
  • 符号链接
  • 元数据校验

和 限制:

  • 分区大小有限。 32 位块号将 512 个扇区大小的分区大小限制为 2TB。
  • 不支持压缩/加密文件和目录。

IMAPIv2 limits the size of the file on a ISO9660 compatible disc to 2GB.

In order to burn files of more than 2GB you have to set a UDF file system.

 HRESULT hr = FileSystemImage->put_FileSystemsToCreate( FsiFileSystemUDF );

The FsiFileSystems enumeration defines the values for recognized file systems:

typedef enum FsiFileSystems { 
  FsiFileSystemNone     = 0,
  FsiFileSystemISO9660  = 1,
  FsiFileSystemJoliet   = 2,
  FsiFileSystemUDF      = 4,
  FsiFileSystemUnknown  = 0x40000000
} FsiFileSystems;
  • FsiFileSystemNone The disc does not contain a recognized file system.
  • FsiFileSystemISO9660 Standard CD file system.
  • FsiFileSystemJoliet Joliet file system.
  • FsiFileSystemUDF UDF file system.
  • FsiFileSystemUnknown The disc appears to have a file system, but the layout does not match any of the recognized types.

UDF natively supports many modern file systems features:

  • Large partition size (maximum 2TB with 512B block size, or 8TB with 2KB block size) 64-bit file size
  • Extended attributes (e.g., named streams, or forks) without size limitation
  • Long file names (maximum 254 bytes, any character can appear in the name)
  • Unicode encoding of file names
  • Sparse file
  • Hard links
  • Symbolic links
  • Metadata checksum

Limitations:

  • Limited partition size. 32-bit block number limits the partition size to 2TB for 512 sector size.
  • Does not support compressed/encrypted file and directories.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文