向ShellLibrary添加路径时出现COMException

时间:2013-08-01 12:39:05

标签: c# windows-api-code-pack

我正在使用Windows 7的Shell Libraries来覆盖现有的库,并使用Windows API Code Pack 1.1中提供的托管包装器为其添加新路径。

我时不时地似乎无法以任何方式重现这一点,在添加到库的路径时会抛出COMException

System.Runtime.InteropServices.COMException (0x80070497): Unable to remove the file to be replaced. (Exception from HRESULT: 0x80070497)
   at Microsoft.WindowsAPICodePack.Shell.IShellLibrary.Commit()
   at ... (local code from here on out)

代码非常简单。 Add方法会引发错误。

using ( var activityContext = new ShellLibrary( LibraryName, true ) )
{
    Array.ForEach( dataPaths, p => activityContext.Add( p.LocalPath ) );
}

是否存在可以重现/测试此异常的特定情况?

假设这是shell库中的一个错误,我可以捕获异常并重试几次操作,尽管我希望找到一个更清洁的“解决方案”。

0 个答案:

没有答案