private async void lstPlayList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
await new MessageDialog(lstPlayList.SelectedValue.ToString()).ShowAsync();
StorageFile mediaFile = await StorageFile.GetFileFromPathAsync(Convert.ToString(lstPlayList.SelectedValue.ToString()));
var mediaStream = await mediaFile.OpenAsync(Windows.Storage.FileAccessMode.Read);
PlayerME2.SetSource(mediaStream, mediaFile.FileType);
}
这段代码有什么问题?当选择从列表框中更改时,我正在尝试播放媒体文件。但得到错误
mscorlib.dll中发生了'System.UnauthorizedAccessException'类型的异常,但未在用户代码中处理
我也设置了admin privillage。
<requestedExecutionLevel level="requireAdministrator" uiAccess="true" />
我收到的错误是:
mscorlib.dll中发生了'System.UnauthorizedAccessException'类型的异常,但未在用户代码中处理
WinRT信息:无法访问指定的文件或文件夹(占퀠0)。该项目不在应用程序可以访问的位置(包括应用程序数据文件夹,可通过功能访问的文件夹以及StorageApplicationPermissions列表中的持久项目)。验证文件未标记系统或隐藏文件属性。
其他信息:访问被拒绝。
如果存在此异常的处理程序,则可以安全地继续该程序。
我错过了什么?
答案 0 :(得分:1)
Windows应用商店应用正在沙盒中运行,这就是无法使用路径访问所有文件的原因(例如,使用C:/test.txt
之类的路径)。 WinRT安全模型阻止您这样做。
您只能在ApplicationData.Current.LocalFolder
或ApplicationData.Current.RoamingFolder
等允许的存储位置打开文件,或者当用户使用file picker主动选择文件时。
您还可以指定capabilities,以便可以访问图片或文档库。
如果您需要访问用户已选择的文件,而该文件位于沙盒外面,并且#34;使用StorageApplicationPermissions.FutureAccessList属性可在应用重启后访问该文件。
答案 1 :(得分:0)
试试这个:
如果要访问根目录,则应以管理员模式运行项目
将此添加到应用清单:
<requestedExecutionLevel level="requireAdministrator" uiAccess="true"/>