使用包含空白的路径打开CabInfo
本文关键字:CabInfo 路径 包含 空白 | 更新日期: 2023-09-27 18:20:02
我正试图使用打开*.cab文件(由Microsoft安装程序使用)
String cabFileName = @"C:'Programme und Einstellungen'somefolder'mycab.cab";
CabInfo cab = new CabInfo(cabFileName);
CabInfo类是Windows安装程序XML(WiX)工具集的一部分(参见。http://codesupport.wordpress.com/tag/microsoft-deployment-compression-cab-dll/)
但是,CabInfo不会接受包含空格的文件路径,即使它是如上所示正确转义的。
我想知道是否有可能将包含空格的文件名传递给CabInfo。
我几乎不想建议这样做,但你尝试过8.3兼容的文件名吗?例如:
CabInfo cab = new CabInfo(@"C:'PROGRA~1'somefolder'mycab.cab");
不幸的是,如果这个机制有效,我认为FileInfo
上没有ShortName
属性。我认为您需要PInvoke kernel32.dll
中的GetShortPathName
函数。
我不知道这是否可能,但我看到了解决问题的两种可能性:
1) .cab文件通常使用zip文件格式进行压缩。您可以使用类似zlib的库打开它。
2) 如果文件不是太大,可以在打开之前将其复制到类似"c:''temp"的文件夹中。
我希望它能帮助你。