我正在尝试使用
打开* .cab文件(由Microsoft Installer使用) String cabFileName = @"C:\Programme und Einstellungen\somefolder\mycab.cab";
CabInfo cab = new CabInfo(cabFileName);
CabInfo类是Windows Installer XML(WiX)工具集的一部分(参见http://codesupport.wordpress.com/tag/microsoft-deployment-compression-cab-dll/)
但是,CabInfo不接受包含空格的文件路径,即使它已正确转义,如上所示。
我想知道是否有可能将包含空格的文件名传递给CabInfo。
答案 0 :(得分:0)
我不知道是否有可能,但我看到有两种可能解决问题:
1).cab文件通常以zip文件格式压缩。您可以使用像zlib这样的库来打开它。
2)如果文件不是太大,可以在打开之前将其复制到“c:\ temp”这样的文件夹中。
我希望它会对你有所帮助。
答案 1 :(得分:0)
我几乎不想提出这个问题,但您是否尝试过使用8.3兼容性文件名?例如:
CabInfo cab = new CabInfo(@"C:\PROGRA~1\somefolder\mycab.cab");
不幸的是,如果这种机制有效,我认为ShortName
上没有FileInfo
属性。我认为您需要在GetShortPathName
中启用kernel32.dll
功能。