1

IMAPI2 インターフェイス IFileSystem は、COM IStream インターフェイスを使用してファイル データを表します。指定したディレクトリの内容を IFileSystem に追加する AddTree メソッドがあります。したがって、AddTree はプロセスで IStream を作成する必要があります。IStream のどの実装を使用するのだろうか? 標準の OLE 実装を使用する場合、OLE ストリームは 4Gb を超えるファイルをサポートしないため、厄介な問題が発生します。

誰でもこの問題に光を当てることができますか?

4

1 に答える 1

3

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 は、多くの最新のファイル システム機能をネイティブにサポートしています。

  • 大きなパーティション サイズ (ブロック サイズが 512B の場合は最大 2TB、ブロック サイズが 2KB の場合は最大 8TB) 64 ビットのファイル サイズ
  • サイズ制限のない拡張属性 (名前付きストリームやフォークなど)
  • 長いファイル名 (最大 254 バイト、名前には任意の文字を使用できます)
  • ファイル名の Unicode エンコーディング
  • スパースファイル
  • ハードリンク
  • シンボリックリンク
  • メタデータ チェックサム

制限:

  • 制限されたパーティション サイズ。32 ビットのブロック番号は、512 セクター サイズのパーティション サイズを 2TB に制限します。
  • 圧縮/暗号化されたファイルとディレクトリはサポートされていません。
于 2013-11-13T16:42:04.577 に答える