您可以从其路径访问选择的StorageFile吗? -UWP

问题描述

我需要能够从UWP应用程序中的文件路径访问文件

首先由用户使用OpenFilePicker选择文件。然后,我需要将此文件传递到FFmpeg包装器,该包装器从文件路径设置其输入。目前,对于应用本地存储外部的任何文件,我都收到访问被拒绝的错误(如预期)。

fileopenpicker filePicker = new fileopenpicker();
filePicker.viewmode = Pickerviewmode.Thumbnail;
filePicker.FileTypeFilter.Add("*");


var file = await filePicker.PickSingleFileAsync();


FFMpegArguments
   .FromInputFiles(file.Path.ToString())

当通过路径字符串(file.Path.ToString())而不是存储文件实例访问该文件时,是否可以保留对该文件的应用程序权限?一直在研究FutureAccessList,但这似乎以后只会提供另一个存储文件实例,而不是允许对同一文件的路径访问。我不想启用广泛的文件系统访问权限,因为我只需要访问用户已经选择的单个文件即可。

谢谢!

解决方法

这是例外行为。默认情况下,不允许UWP应用使用Path。 UWP应用具有受限制的broadFileSystemAccess capability。此功能允许UWP应用访问系统中的所有文件。但是您只能使用Storage API来通过路径获取文件。

对于您的方案,您可能需要检查FFMpegArguments对象是否具有其他方法来创建实例,例如使用Steam。