您能否仅使用其复合文件流从 97-2003 恢复 word 文档?

Can you restore a word document from 97-2003 only using its Compound File streams?

我正在尝试恢复使用 97-2003 版本的 word 文档。我不记得我为什么这样做了,但我把 Compound File streams 保存到一个文件夹中,这绝对是我想要作为原始文档返回的东西。有解决办法吗?

谢谢!

当然,理论上你应该能够恢复它。

您应该能够使用

创建根复合文档
StgCreateDocfile() // or StgCreateStorageEx()

如果成功,您将需要来自此的 IStorage* 指针。

如果您的文件夹中有一个文件夹,您将不得不为每个文件夹创建子存储——并以递归方式进行。 API 是 IStorage::CreateStorage() ... 查一下。

如果文件夹中有文件,则需要在相当于文件夹的存储中创建流。要创建流,请使用 IStorage::CreateStream()...查找参数。

查看您的屏幕截图,它有一些名为 [1]CompObj 或 [5]SummaryDocumentInformation 的流。对于 [n] 部分,这可能等同于 _T('\00n'),其中 n 是 1 或 5 或其他任何值——它可能是一个控制字符。我在复合文件中看到过。如果您想进行调查,请创建一个 Word 97-2003 文档并另存为 .doc 文件并检查结构。

所以,像 [1]CompObj 这样的东西实际上是 _T("\001CompObj")

上面关于文件名中 [n] 的内容是 educated/experienced 猜测。