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. ...
随机推荐
- 小强的HTML5移动开发之路(37)——jqMobi快速入门
在<小强的HTML5移动开发之路(33)-- jqMobi基础>中我们了解了什么是jqMobi,并从官方下载了jqMobi开发包,下载后解压目录如下: 拷贝上面的/css目录./plugi ...
- App各种Icon及Launch image的尺寸和用途
App各种Icon及Launch image的尺寸和用途 IOS7,8 Asset iPhone 6 Plus (@3x) iPhone 6 and iPhone 5 (@2x) iPhone 4s ...
- 用Mochiweb打造百万级Comet应用,第一部分
http://www.iteye.com/topic/267028 原文:A Million-user Comet Application with Mochiweb, Part 1 参考资料:Com ...
- oracle数据库零散知识01
1,rownum 是一个虚列,使用时必须包括1才能使用,rownum = 1,rownum < 10; rownum = 2是不可以的: 2,if case loop 要加end结束,end ...
- 【hdu2825】ac自动机 + 状压dp
传送门 题目大意: 给你一些密码片段字符串,让你求长度为n,且至少包含k个不同密码片段串的字符串的数量. 题解: 因为密码串不多,可以考虑状态压缩 设dp[i][j][sta]表示长为i的字符串匹配到 ...
- Android菜鸟的成长笔记(19)——Service的生命周期
前面两篇文章介绍了关于Service的两种启动方式,简要总结如下: Context.startService() Context.bindService() 1. startService()的目的是 ...
- HashMap工作原理的介绍!
HashMap的工作原理是近年来常见的Java面试题.几乎每个Java程序员都知道HashMap,都知道哪里要用HashMap,知道HashTable和HashMap之间的区别,那么为何这道面试题如此 ...
- Java并发编程:synchronized和Lock
转自 : http://www.tuicool.com/articles/qYFzUjf
- Cocostudio学习笔记(3) ImageView + Slider
此记录使用两个控制流:ImageView 和 Slide. ---------------------------------------------------------------------- ...
- ef core 数据类型 && 表字段名设置
HasColumnType HasColumnType是指定字段类型 [Column(TypeName = "decimal(18, 2)")] public decimal Mo ...