IMAPI2 接口 IFileSystem 使用 COM IStream 接口来表示文件数据。有 AddTree 方法将指定的目录内容添加到 IFileSystem。所以 AddTree 必须在这个过程中创建 IStream。我想知道它使用什么 IStream 实现?如果它使用标准的 OLE 实现,我们就会遇到一个讨厌的问题,因为 OLE 流不支持大于 4Gb 的文件。
任何人都可以对这个问题有所了解吗?
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 原生支持许多现代文件系统功能:
限制: