问题描述
首先由用户使用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。