首页 > 解决方案 > 你可以从它的路径访问一个选择的 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 但这似乎只是稍后提供另一个存储文件实例,而不是允许路径访问同一文件。我不想启用广泛的文件系统访问,因为我只需要访问用户已经选择的单个文件。

谢谢!

标签: c#ffmpeguwppermissionsstoragefile

解决方案


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

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


推荐阅读