UWP应用对文件的访问权限问题?如何读取任意路径文件?

寂****雨 UID.1194285
2018-01-21 发表

我自己之前做过一个WPF的小工具,最近打算把它移植成UWP软件,但是想着一不做二不休就干脆直接写成原生UWP应用吧,不过目前遇到了一个问题,不知该如何解决。

本来呢,我想着既然还能使用System.IO,那么对文件的处理原本计划还是用System.IO里面的类……
于是代码一气呵成,然后调试发现很多方法实际不起作用,比如选择或者输入文件或文件夹路径后,基本的判断存在的方法始终只会返回false的结果……

反正弄来弄去发现System.IO基本上起不了多少作用……

于是查找文档说建议使用RT库的Windows.Storage……嘛,于是呢就用了,然后按照微软官方的文档把应用清单里面的权限该选的都选了……
应为获取文件需求是用户直接选择后把路径传到方法里面,我在我的方法里面通过如下代码获取文件,如下:

StorageFile file = await StorageFile.GetFileFromPathAsync(filePath);

这里filePath就是传入的文件完整路径。

问题就出在这里,当文件处于音乐库、图库、视频库、文档库等系统文件夹以及应用程序本地文件夹、漫游文件夹、缓存文件夹等文件夹时,可以正常获得文件并进行接下来的操作,
但是一旦文件位于其他地方比如"D:\Temp"、"F:\Music"等等文件夹,调试到该步骤就会报错,提示无权限获取,拒绝访问。


但是我看了下商店的一些其他应用比如网易云音乐、爱奇艺等等,是可以从不需要管理员权限的任意位置获取到文件并进行处理,所以我想知道应该如何做?

敬告:
为防止不可控的内容风险,本站已关闭新用户注册,新贴的发表及评论;
你现在看到的内容只是互联网用户曾经发表的言论快照,仅用于老用户留存纪念,且仅与科技行业相关,全部内容不代表本站观点及立场;
本站重新开放前已针对包括用户隐私、版权保护、信息安全、国家政策在内的各种互联网法律法规要求,执行了隐患内容的自查、屏蔽和删除;
本站目前所属个人主体,未有任何盈利安排与计划,且与原WFUN.COM所属公司不存在任何关联关系;
如果本帖内容或者相关资源侵犯到您的合法权益,或者您认为存在问题,那么请您务必点此举报或投诉!
全部回复:
tmp00000 UID.995403
2018-01-23 回复

你需要在同一个应用包内包含一个 Win32 进程。App Container 进程都是受到严格隔离的,但是 Win32 进程的限制会少一些。这两个进程用 AppService 通信。

tmp00000 UID.995403
2018-01-23 回复

不过这样做的话,你的包就只能在桌面版系统部署。

wcavell UID.34926
2018-01-24 回复

Quote***链接停止解析***
不过这样做的话,你的包就只能在桌面版系统部署。


感觉用这个类StorageApplicationPermissions 算折中方案,添加选择盘符到FutureAccessList里,以后读取这个盘符下的所有内容了。
网易云那种猜测应该是让你选择保存位置,然后他就把文件夹的东西存到FutureAccessList里的,大同小异

tmp00000 UID.995403
2018-01-27 回复

Quotewcavell 发表于 2018-1-24 15:45
感觉用这个类StorageApplicationPermissions 算折中方案,添加选择盘符到FutureAccessList里,以后读取这 ...


爱奇艺用的就是我说的办法。不信的话启动爱奇艺 4.3 之后用任务管理器看启动了几个进程。

artfly08 UID.2900999
2018-06-26 使用 Lumia 950 XL 回复

支持

artfly08 UID.2900999
2018-07-14 回复

支持

本站使用Golang构建,点击此处申请开源鄂ICP备18029942号-4联系站长投诉/举报