FileOpenPicker PickSingleFileAsync抛出UnauthorizedAccessException

时间:2013-03-19 07:08:09

标签: c# windows-8 microsoft-metro windows-runtime

以下代码几乎是FileOpenPicker类的MSDN示例的逐字记录。

FileOpenPicker picker = new FileOpenPicker();
picker.ViewMode = PickerViewMode.Thumbnail;
picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
picker.FileTypeFilter.Add(".png");
picker.FileTypeFilter.Add(".jpg");
picker.FileTypeFilter.Add(".jpeg");

StorageFile file = await picker.PickSingleFileAsync();

当我从按钮触发它时,我从最后一行得到以下异常:

  

System.UnauthorizedAccessException的
  访问被拒绝。 (HRESULT异常:0x80070005(E_ACCESSDENIED))

我认为在这种用法中FileOpenPicker的想法是我不需要询问用户访问权限或指定任何功能?

1 个答案:

答案 0 :(得分:2)

我在调用PickSingleFileAsync()之前设置了一个断点。事实证明,在边框内按下TextBlock时会触发两个tapped事件(两者都使用相同的Tapped事件处理程序)。

第一个调用按预期工作,但后续调用导致UnauthorizedAccessException,并且会在显示选择器后直接发生。