使用包含空格的路径打开CabInfo

时间:2012-01-12 13:37:47

标签: c# wix

我正在尝试使用

打开* .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。

2 个答案:

答案 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功能。