C# 检索属性同步和COMException E_失败

C# 检索属性同步和COMException E_失败,c#,com,windows-runtime,C#,Com,Windows Runtime,我在一台机器上遇到问题。这是Windows8.1和x64,但似乎这不是真正的问题 我已经在以下所有平台ARM、x86和x64上运行Windows8和8.1的设备和笔记本电脑上测试了这段代码只有这台笔记本电脑抛出COMException。 此代码: //是的,我已选中清单中的相应框以访问VideosLibrary。 StorageFolder vidFolder=KnownFolders.VideosLibrary; var SystemFreeSpace=“System.FreeSpace”;

我在一台机器上遇到问题。这是Windows8.1和x64,但似乎这不是真正的问题

我已经在以下所有平台ARM、x86和x64上运行Windows8和8.1的设备和笔记本电脑上测试了这段代码只有这台笔记本电脑抛出COMException。

此代码:

//是的,我已选中清单中的相应框以访问VideosLibrary。
StorageFolder vidFolder=KnownFolders.VideosLibrary;
var SystemFreeSpace=“System.FreeSpace”;
var SystemCapacity=“System.Capacity”;
var SystemPercentFull=“System.PercentFull”;
var properties=new List(){SystemFreeSpace,SystemCapacity,SystemPercentFull};
//这只会在一个设备上爆炸。虽然在Windows8.1上我得到了空值(不同的问题)。
var props=wait vidFolder.RetrievePropertiesAsync(属性);
这是异常消息

错误代码:

-2147467259

错误消息:

调用COM组件时返回错误HRESULT E_FAIL

行号:

mscorlib

所以我想也许这个人的视频文件夹本身就是问题所在。但是,当我尝试检索USB驱动器的属性时,代码工作正常


还有其他人遇到过此问题吗?

问题似乎是因为用户的VideosLibrary“文件夹”已损坏。这可能是因为从Win7到Win8再到Win8.1的升级过程(只是一个理论)

解决方案是:删除旧的损坏视频库,然后打开Windows资源管理器浏览器,右键单击“库>恢复默认库”


E_FAIL是一个不可诊断的错误代码。询问文件夹中只有驱动器上有意义的属性肯定与此有关。@HansPassant感谢提供错误代码信息。但是你的怀疑是不对的。结果表明该用户的VideosLibrary文件夹已损坏。他们必须删除当前的视频库“文件夹”,然后右键单击Windows资源管理器中的“库>恢复默认库”。这解决了这个问题。