Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库。
关于WinRT,引用一张网上传的很多的结构图:
图1
针对App的开发,App工作在系统划定的安全沙箱内,所以通过Win32去调用U盘获取数据是不行了。下面来看下在WinRT下如何
读取U盘数据。
1.Win 8 store app项目打开Package.appxmanifest配置文件
2.选择Capabilities标签页,勾选Removalbe Storage,也可以在配置文件中的 <Capabilities>节点增加
<Capability Name="removableStorage" />
3.选择Declarations标签页,增加File Type Associations,File type增加.pdf(这个需要筛选的文件,根据扩展名随意添加),配置文件对应节点,如下:
<Extensions>
<Extension Category="windows.fileTypeAssociation">
<FileTypeAssociation Name="file">
<SupportedFileTypes>
<FileType>.pdf</FileType>
</SupportedFileTypes>
</FileTypeAssociation>
</Extension>
</Extensions>
4.枚举设备信息
var devs = await DeviceInformation.FindAllAsync(DeviceClass.PortableStorageDevice);
foreach (var each in devs) {
var removableStorage = StorageDevice.FromId(each.Id); if (removableStorage != null) {
GetFile(removableStorage);
}
}
5.获取文件
async private void GetFile(StorageFolder removableStorage) {
var files = await removableStorage.GetFilesAsync();
foreach (var item in files) {
data.Add(item.DisplayName);
}
}
代码:戳