我在一台计算机上遇到问题。它是Windows 8.1和x64,但它似乎不是真正的问题。
我已经在以下所有平台ARM,x86和x64上运行Windows 8和8.1的设备和笔记本电脑上测试了此代码。 只有这台笔记本电脑才会抛出COMException。
此代码:
// Yes, I have checked the appropriate box in the manifest to access VideosLibrary.
StorageFolder vidFolder = KnownFolders.VideosLibrary;
var SystemFreeSpace = "System.FreeSpace";
var SystemCapacity = "System.Capacity";
var SystemPercentFull = "System.PercentFull";
var properties = new List<string>() { SystemFreeSpace, SystemCapacity, SystemPercentFull };
// THIS blows up on only one device. Though on Windows 8.1 I get null values (different issue).
var props = await vidFolder.RetrievePropertiesAsync(properties);
这是异常消息。
错误代码:
-2147467259
错误消息:
错误HRESULT E_FAIL已从调用COM组件返回。
行号:
mscorlib程序
所以我觉得这个人的视频文件夹本身就是问题所在。当我尝试检索USB驱动器的属性时,代码工作正常。
还有其他人遇到过这个问题吗?
答案 0 :(得分:1)
似乎问题是因为用户的VideosLibrary“文件夹”已损坏。这可能是由于从Win7到Win8到Win8.1的升级过程(仅仅是理论)。
解决方案是:删除旧的已损坏的VideosLibrary,然后打开Windows资源管理器浏览器并右键单击“Libraries&gt; Restore default libraries”。