我正在使用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库中的一个错误,我可以捕获异常并重试几次操作,尽管我希望找到一个更清洁的“解决方案”。