c# - 你可以从它的路径访问一个选择的 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应用具有受限的广泛文件系统访问功能。此功能允许 UWP 应用访问系统中的所有文件。但是您只能使用Storage API通过路径获取文件。
对于您的场景,您可能需要检查 FFMpegArguments 对象是否具有其他方法来创建实例,例如使用 steam。
推荐阅读
- javascript - 如何让 discord.js 阅读回复
- pine-script - 回测未在交易视图中显示 SMA 交叉脚本的任何结果
- assembly - 在 x86 程序集中用“equ”更改 bss 部分中定义的标签值
- sql-workbench-j - 启动错误:Java 未能成功启动。请确保您已安装 32 位 Java 8
- python - 获取字典中元组中值最高的元素
- r - 如何在数据框中查找跨多列显示唯一结果的行
- gd - 缺少函数 imagettfbbox()
- c++ - 一个简单可靠的 C++ 基准测试解决方案?
- amazon-s3 - AWS localstack s3 存储桶端点无法连接
- teradata - 在 TERADATA 中的特定列名中选择值