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

时间:2010-01-05 04:24:47

标签: mfc visual-c++ chm

我有许多CHM文件,每个文件都是5个不同Html文件的压缩html。我的意思是,假设我有5个不同的文件,名为Alpha,Beta,Gamma,Delta,Theta。 说,我在CHM文件中压缩这5个。让我们调用该文件CompressedHtm.CHM。我有> 500个这些文件。 现在我想检查所有这些> 500个文件是否都有5个子文件(即Alpha,Beta,Gamma,Delta,Theta)。有没有办法在VC ++ 6.0 / MFC中检查它而不解除CHM文件。?

2 个答案:

答案 0 :(得分:1)

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

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

几天前,我偶然会把exes拉到前面,你可以在这里找到它们 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

答案 1 :(得分:0)

HTML帮助使用IE进行显示。所以你只需要使用webbrowser导航到像mk这样的URL:@MSITStore:c:\ WINDOWS \ Help \ htmlhelp.chm :: / apiref.htm。如果该文件不存在,您将获得带有404状态代码的DWebBrowserEvents2 :: NavigateError。 请注意,您可能会在现有版本的Windows上遇到其他错误,因为Microsoft有limited its usage due to security concerns

相关问题