如何检查chm文件中是否存在子文件?

发布于 2024-08-16 16:03:29 字数 283 浏览 11 评论 0原文

我有许多 CHM 文件,每个文件都是 5 个不同 Html 文件的压缩 html。我的意思是,假设我有 5 个不同的文件,名为 Alpha、Beta、Gamma、Delta、Theta。 比如说,我将这 5 个压缩在一个 CHM 文件中。我们将该文件命名为 CompressedHtm.CHM。我有超过 500 个这样的文件。 现在我想检查所有这些 > 500 个文件是否都有所有 5 个子文件(即 Alpha、Beta、Gamma、Delta、Theta)。有没有办法在 VC++ 6.0 /MFC 中检查这一点,而无需反编译 CHM 文件。

I have a number of CHM files, and each of the files is a comressed html for 5 different Html files. I mean, lets say I have 5 different files named Alpha, Beta, Gamma, Delta, Theta.
Say, I compress these 5 in a CHM file. Lets call that file CompressedHtm.CHM. I have >500 of these files.
Now I want to check if all of these >500 files have all 5 subfiles( i.e. Alpha, Beta, Gamma, Delta, Theta). Is there a way to check that in VC++ 6.0 /MFC without decomiling the CHM files.?

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

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

发布评论

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

评论(2

梦在夏天 2024-08-23 16:03:29

Free Pascal 附带了一个完全独立的 (*) 命令行可执行 CHMLS,允许列出 CHM 文件的内容。它适用于多个平台。

您可以使用管道执行该操作,然后处理输出。

几天前我碰巧为其他人压缩了前任,你可以在这里找到它们
http://www.stack.nl/~marcov/chmls.zip

(或者如果您不信任我,请下载fpc 2.4.0 windows版本)

(*)我不知道win9x上的状态。

输出如下:

 <Section> <Offset> <UnCompSize>  <Name>
 0               0            0  /#ITBITS
 1        27737212       192334  /#STRINGS
 0              70          133  /#SYSTEM
 1        22414493       169080  /#TOCIDX
 1        26847375       339904  /#TOPICS
 1        27187279       294757  /#URLSTR
 1        27482036       255176  /#URLTBL
 1        27929546      1174749  /$FIftiMain
 1        22411742         2751  /$OBJINST
 0               0            0  /$WWKeywordLinks/
 1        24122411       628812  /$WWKeywordLinks/BTree
 1        24751223       111371  /$WWKeywordLinks/Data
 1        24862594         2378  /$WWKeywordLinks/Map
 1        24864972            1  /$WWKeywordLinks/Property
 0               0           70  /_#_README_#_
 0               0            0  /baseunix/
 1        10656150         1395  /baseunix/_stat_ver.html
 1        10651853         1438  /baseunix/_stat_ver_kernel.html
 1        10654717         1433  /baseunix/_stat_ver_linux.html
 1        10650407         1446  /baseunix/_stat_ver_linux_old.html
 1        10653291         1426  /baseunix/_stat_ver_svr4.html
 1        10452426         1438  /baseunix/arg_max.html
 1        10644473         1510  /baseunix/bitsinword.html

以 # 和 $ 开头的文件是内部文件。

(这些工具是 Free Pascal 的 CHM 库附带的实用工具,它支持 CHM 读/写支持,独立于 Free Pascals 文档和帮助系统的其他工具。它独立于操作系统,据我所知,它在 OS X/PowerPC64 上运行良好

With Free Pascal comes a totally standalone(*) command line executable CHMLS that allows to list the contents of a CHM file. It exists for multiple platforms.

You could execute that using pipes and then process the output.

I happen to zip the exes for sb else a few days back, you can get them here
http://www.stack.nl/~marcov/chmls.zip

(or download the fpc 2.4.0 windows release if you don't trust me)

(*) I don't know the state on win9x.

The output looks like:

 <Section> <Offset> <UnCompSize>  <Name>
 0               0            0  /#ITBITS
 1        27737212       192334  /#STRINGS
 0              70          133  /#SYSTEM
 1        22414493       169080  /#TOCIDX
 1        26847375       339904  /#TOPICS
 1        27187279       294757  /#URLSTR
 1        27482036       255176  /#URLTBL
 1        27929546      1174749  /$FIftiMain
 1        22411742         2751  /$OBJINST
 0               0            0  /$WWKeywordLinks/
 1        24122411       628812  /$WWKeywordLinks/BTree
 1        24751223       111371  /$WWKeywordLinks/Data
 1        24862594         2378  /$WWKeywordLinks/Map
 1        24864972            1  /$WWKeywordLinks/Property
 0               0           70  /_#_README_#_
 0               0            0  /baseunix/
 1        10656150         1395  /baseunix/_stat_ver.html
 1        10651853         1438  /baseunix/_stat_ver_kernel.html
 1        10654717         1433  /baseunix/_stat_ver_linux.html
 1        10650407         1446  /baseunix/_stat_ver_linux_old.html
 1        10653291         1426  /baseunix/_stat_ver_svr4.html
 1        10452426         1438  /baseunix/arg_max.html
 1        10644473         1510  /baseunix/bitsinword.html

The files starting with # and $ are internal files.

(the tools are utils that come with Free Pascal's CHM library which supports CHM read/write support independant of other tools for Free Pascals documentation and help systems. It's OS independant, and to my best knowledge it works fine on OS X/PowerPC64

甜中书 2024-08-23 16:03:29

HTML 帮助使用 IE 进行显示。因此,您只需使用网络浏览器导航到类似 mk:@MSITStore:c:\WINDOWS\Help\htmlhelp.chm::/apiref.htm 的 URL。如果该文件不存在,您将收到 DWebBrowserEvents2::NavigateError 和 404 状态代码。
请注意,您可能会在现代版本的 Windows 上遇到其他错误,因为 Microsoft 出于安全考虑限制了其使用

HTML Help uses IE for display. So you just need to use a webbrowser to navigate to a URL like mk:@MSITStore:c:\WINDOWS\Help\htmlhelp.chm::/apiref.htm. If the file does not exist, you will get DWebBrowserEvents2::NavigateError with a 404 status code.
Note you may get other errors on modern versions of Windows as Microsoft has limited its usage due to security concerns.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文