UWP访问KnownFolders.RemovableDevices时(读取U盘文件)抛出异常UnauthorizedAccessException
读取U盘的文件时:
StorageFile file = await folder.GetFileAsync("myfile.txt");
抛出异常System.UnauthorizedAccessException: 拒绝访问。
解决方案:
参考:https://msdn.microsoft.com/library/windows/apps/windows.storage.knownfolders.removabledevices.aspx
注意 您的应用程序在清单中必须使用“文件类型关联”声明显式声明哪种文件类型(扩展)将在可移动设备文件夹中访问。 此文件夹对应于“我的电脑”中的“可移动的设备”部分,同时也包括诸如 USB 闪存驱动器和外置硬盘的设备。
打开项目中的应用部件清单文件 (Package.appxmanifest)
- 1.在“功能”选项卡中勾选"可移动存储"。
- 2.在“声明”选项卡中。
- 从下拉列表中选择“文件类型关联”,然后单击“添加”。
- 输入 txt
作为“名称”。
- 输入
.txt
作为“文件类型”。 - 输入“images\Icon.png”作为“徽标”。
- 按 Ctrl+S 保存对 package.appxmanifest 的更改。
重新运行即可。
代码:
//读取U盘中的txt文件
StringBuilder foldersName = new StringBuilder();
var removableDisksName = "";
var removableStorages = await KnownFolders.RemovableDevices.GetFoldersAsync();
if (removableStorages.Count > 0)
{
// 遍历每个可移动存储设备
foreach (StorageFolder storage in removableStorages)
{
removableDisksName += storage.DisplayName + "\n";
var folderList = await storage.GetFoldersAsync();//获取存储设备下的目录
foreach (StorageFolder folder2 in folderList)
{
foldersName.Append(folder2.DisplayName + "\n");
if (folder2.DisplayName.Equals("myfolder", StringComparison.OrdinalIgnoreCase))
{
openFile(folder2);
}
} async void openFile(StorageFolder folder)
{
StorageFile file = await folder.GetFileAsync("myfile.txt");
using (Stream fs = await file.OpenStreamForReadAsync())
{
using (StreamReader read = new StreamReader(fs))
{
string output = read.ReadToEnd();
int iiii = 0;
}
}
}
}
}
else
{
//没有移动存储连接到电脑
}
UWP访问KnownFolders.RemovableDevices时(读取U盘文件)抛出异常UnauthorizedAccessException的更多相关文章
- android的数据与访问(1)-我的app配置参数文件放在哪儿?
系统提供数据处理方式: 1.SharedPreferences 2.文件存储 3.轻量级的数据.如SQLLite 1.简单存储 是android提供的起来年纪的数据存储方式:SharedPerence ...
- liveCD版: CD光盘映像,和liveDVD一样,唯一的区别就是该版本中包含的软件包会少一点,安装系统时使用 U 盘或者CD光盘进行安装。
https://man.linuxde.net/download/CentOS/ CentOS,英文全称"Community Enterprise Operating System" ...
- java web实现读取指定盘符下的图像(二)
之前写了一篇文章是关于如何读取指定盘符下的图片,虽然功能可以实现,但是使用的是I/O流的方式,效率不高.现在发现还有一个更好的办法,使用也更加的方便. 我们知道,当我们的图片是放在tomcat下web ...
- U盘文件或目录损坏且无法读取怎么解决
转自 http://jingyan.baidu.com/article/020278118afaec1bcc9ce5df.html U盘文件或目录损坏且无法读取怎么解决 听语音 | 浏览:37504 ...
- shell启动时读取的配置文件
bash shell具体可以分为3种类型,这3种类型为: 1 login shell 就是需要输入用户名和密码才能登陆的shell 2 可交互的非login shell 就是不用登陆的,但是可以同用户 ...
- 清除在Windows下访问共享文件夹时的登录信息
清除在Windows下访问共享文件夹时的登录信息 在实际工作中,经常需要访问局域网内其他机子上的共享文件夹,例如\\192.168.1.100\d$ , 首次访问时,需要输入用户名和密码才可以进入,即 ...
- mac 命令行读取 u盘
mac 系统命令行读取u盘
- 在Eclipse中启动tomcat后访问tomcat首页时出现404
在Eclipse中配置好tomcat后,把一个web项目发布到tomcat上去,当使用http://localhost:8080访问tomcat首页时出现404错误,但可以正常访问web页面,然而当在 ...
- 访问平安银行网站时出现证书问题 NET::ERR_CERT_SYMANTEC_LEGACY
访问平安银行网站时出现证书问题 NET::ERR_CERT_SYMANTEC_LEGACY 查了资料说是 Google 取消了对 Symantec SSL 的信任,因为 Symantec 干了坏事1. ...
随机推荐
- Oracle数据库零散知识04 --- 其常用内置函数
1,数值函数 Select abs(-9),--9 绝对值 Mod(5,3),--2 余数 Sign(-9),-- -1 标记 Ceil(9.4),--10 Floor(9.8),--9 Sqrt(1 ...
- P2P网贷第三方托管模式存在5大缺陷,护法是最大的赢家
1.注冊开户须要2次,用户体验非常差劲儿. 理財人和借款人.首先在平台注冊,然后还要在第三方托管账户注冊. 非常多相似的地方,用户体验非常差劲. 比方.password4个. 平台:登 ...
- 【codeforces 785B】Anton and Classes
[题目链接]:http://codeforces.com/contest/785/problem/B [题意] 给你两个时间各自能够在哪些时间段去完成; 让你选择两个时间段来完成这两件事情; 要求两段 ...
- 【21.37%】【codeforces 579D】"Or" Game
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- UVA 1428 - Ping pong(树状数组)
UVA 1428 - Ping pong 题目链接 题意:给定一些人,从左到右,每一个人有一个技能值,如今要举办比赛,必须满足位置从左往右3个人.而且技能值从小到大或从大到小,问有几种举办形式 思路: ...
- ADO.NET - 批量更新或添加数据
方法一:使用SqlBulkCopy实现批量更新或添加数据. SqlBulkCopy类一般只能用来将数据批量插入打数据库中,如果数据表中设置了主键,出现重复数据的话会报错,如果没有设置主键,那么将会添加 ...
- oracle 数组
定义一个长度为5的字符串数组 type str_array is varray(5) of varchar2(30); v_str_array str_array := expr_key_array( ...
- cordova使用cordova-plugin-baidumaplocation插件获取定位
原文:cordova使用cordova-plugin-baidumaplocation插件获取定位 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/m ...
- jQuery迭代器
http://www.imooc.com/code/3417 迭代器 迭代器是一个框架的重要设计.我们经常需要提供一种方法顺序用来处理聚合对象中各个元素,而又不暴露该对象的内部,这也是设计模式中的迭代 ...
- Android studio中的6大布局
1.相对布局代码: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns: ...