微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

只能使用复合文件流从97-2003恢复Word文档吗?

如何解决只能使用复合文件流从97-2003恢复Word文档吗?

我正在尝试恢复使用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]的内容是有根据的/有经验的猜测。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。