如何检查chm文件中是否存在子文件?
我有一些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文件。如何检查chm文件中是否存在子文件?
With Free Pascal提供了一个完全独立的(*)命令行可执行CHMLS,允许列出CHM文件的内容。它存在于多个平台。
您可以使用管道执行该操作,然后处理输出。
我碰巧的邮政编码为其他某人的前男友几天就回来,你可以让他们在这里 http://www.stack.nl/~marcov/chmls.zip
(或下载FPC 2.4.0窗口,如果你不相信我释放)
(*)我不知道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
的开头的文件#和$内部文件。
(这些工具是与免费Pascal的CHM库一起提供的utils,它支持CHM读/写支持,与Free Pascals文档和帮助系统无关,它独立于操作系统,据我所知它在OS X上运行良好/ PowerPC64
HTML帮助使用IE进行显示。所以你只需要使用web浏览器导航到像mk这样的URL:@MSITStore:c:\ WINDOWS \ Help \ htmlhelp.chm ::/apiref.htm。如果文件不存在,您将得到带有404状态码的DWebBrowserEvents2 :: NavigateError。 请注意,您可能会在现代版本的Windows上收到其他错误,如Microsoft已有limited its usage due to security concerns。