Win10系列:VC++文件选取
在C++/CX的Windows::Storage::Pickers命名空间中定义了一个FileOpenPicker类,使用此类可以新建一个文件打开选取器,并可以通过这个类里面包含的属性和函数选取一个或多个文件。下面列举了FileOpenPicker类包含的属性:
- ViewMode属性,用于设置文件打开选取器的视图模式,此属性的值包括List(列表模式)和Thumbnail(缩略图模式)。
- SuggestedStartLocation属性,用于设置文件打开选取器的初始位置,此属性的值包括DocumentsLibrary(文档)、ComputerFolder(计算机)、Desktop(桌面)、Downloads(下载)、HomeGroup(家庭组)、MusicLibrary(音乐库)、PicturesLibrary(图片库)和VideosLibrary(视频库)。
- FileTypeFilter属性,获取文件打开选取器显示的文件类型集合。
接下来通过一个示例来说明如何使用FileOpenPicker类新建一个文件打开选取器,并通过文件打开选取器选取一个图片文件。在Visual Staudio 2012中新建一个Visual C++的Windows应用商店的空白应用程序项目,并命名为FilePickDemo。接着打开MainPage.xaml.cpp源文件,引用如下的头文件和命名空间:
#include "ppltasks.h"
using namespace Windows::Storage;
using namespace Windows::Storage::Pickers;
using namespace Concurrency;
using namespace Windows::System;
在上面的代码中,使用include关键字引用头文件ppltasks.h,并使用using指令引用命名空间Windows::Storage、Windows::Storage::Pickers、Concurrency和Windows::System,在新建和设置文件打开选取器时将会用到定义在这些头文件和命名空间中的类。
接下来布局前台界面,打开MainPage.xaml文件,并在Grid元素中添加如下的代码:
<Button x:Name="FileButton" Content="打开文件" FontSize="20" Margin="100,0,0,0" Click="FileButtonClick" Width="120" Height="50"></Button>
在上面的代码中,添加了一个"打开文件"按钮,用于通过文件打开选取器来选取文件。前台界面的显示效果如图20-6所示。

图20-6 "打开文件"按钮
添加了"打开文件"按钮以后,接下来为此按钮添加单击事件处理函数FileButtonClick。打开MainPage.xaml.h头文件,并添加如下的代码,用来声明FileButtonClick函数。
private:
//选取图片文件
void FileButtonClick(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
声明了FileButtonClick函数以后,接着在MainPage.xaml.cpp源文件中添加FileButtonClick函数的实现代码,具体代码如下所示:
//选取图片文件
void FilePickDemo::MainPage::FileButtonClick(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
{
//创建文件打开选取器
FileOpenPicker^ openPicker =ref new FileOpenPicker();
//设置视图为缩略图
openPicker->ViewMode = PickerViewMode::Thumbnail;
//设置访问的初始位置为图片库
openPicker->SuggestedStartLocation = PickerLocationId::PicturesLibrary;
//设置可选取的文件类型
openPicker->FileTypeFilter->Append(".png");
openPicker->FileTypeFilter->Append(".jpg");
//显示文件打开选取器,选择文件
create_task(openPicker->PickSingleFileAsync()).then([this](StorageFile^ file)
{
//对所选取文件进行读取
});
}
在上面的代码中,首先创建一个FileOpenPicker类的对象openPicker,并将PickerViewMode枚举中的枚举成员Thumbnail赋值给openPicker对象的ViewMode属性,设置文件打开选取器的视图模式为缩略图模式。接着将PickerLocationId枚举中的枚举成员PicturesLibrary赋值给openPicker对象的SuggestedStartLocation属性,设置文件打开选取器的初始位置为图片库。然后使用openPicker对象的FileTypeFilter属性得到文件打开选取器显示的文件类型集合,并调用Append函数将文件类型".png"和".jpg"添加到这个集合中。接下来调用openPicker对象的PickSingleFileAsync函数选取单个文件,并得到一个StorageFile类型的对象file。
运行FilePickDemo项目,单击"打开文件"按钮,将显示图20-7所示的文件打开选取器界面。

图20-7 文件打开选取器界面
Win10系列:VC++文件选取的更多相关文章
- Win10系列:JavaScript写入和读取文件
正如上面的内容中所提到的,文件保存选取器用于保存文件,通过Windows.Storage.Pickers命名空间中的FileSavePicker类的pickSaveFileAsync函数可以向指定的文 ...
- Win10系列:JavaScript访问文件和文件夹
在实际开发中经常会遇到访问文件的情况,因此学习与文件有关的操作对程序开发很有帮助,关于文件操作的一些基本技术,在前面章节中有专门基于C#语言的详细讲解,本节主要介绍如何使用HTML5和JavaScri ...
- win10没有新建文件夹
win10没有新建文件夹 win10系统,电脑点击右键没有新建文件夹选项. 工具/原料 win10 系统台式机 方法/步骤 电脑左下角搜素出输入:cmd 出现以下画面 在命令指示符 ...
- Windows Store App JavaScript 开发:文件选取器
正如前面章节C#语言中所介绍的,文件选取器是应用与系统进行交互的一个接口,通过文件选取器可以在应用中直接与文件系统进行交互,访问不同位置的文件或文件夹,或者将文件存储在指定位置.文件选取器分为对文件进 ...
- 【WP 8.1开发】文件选取器的使用方法
在以往的WP7x/8.0开发中,我们使用选择器可以浏览并打开图片.音频.视频等一些特殊文件,在8.0 SDK中的运行时API(从Win 8 app中移植)尽管提供了Windows.Storage.Pi ...
- Windows Store App 文件选取器
使用文件选取器可以访问除上面介绍的"应用程序存储"和"用户库"两个位置之外的本地文件或者文件夹.文件选取器是应用与系统进行交互的一个接口,通过文件选取器可以在应 ...
- [置顶] Android学习系列-把文件保存到SD卡上面(6)
Android学习系列-把文件保存到SD卡上面(5) 一般多媒体文件,大文件需要保存到SD卡中.关键点如下: 1,SD卡保存目录:mnt/sdcard,一般采用Environment.getExter ...
- 重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口
原文:重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (26) ...
- 重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口
原文:重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (2 ...
随机推荐
- 封装sqlhelper【一】
控件信息展示: //定义调用数据库类文件 namespace SqlHelper { public class TblClass { public int classId { get; set; } ...
- openmodelica警告及错误
Warning: The initial conditions are not fully specified. simulate(TCS.TCS,startTime=0,stopTime=200.0 ...
- fileInputStream.available()获取 文件的总大小
available():返回与之关联的文件的字节数 我们用inputStream.available()获取 文件的总大小
- cookie被禁用,如何使用session
转载自:https://blog.csdn.net/ai_shuyingzhixia/article/details/80778183 1.禁止使用cookie response.encodeURL( ...
- Tomcat部署项目定时任务跑了两次
在server.xml下面找到Host这行代码 <Host name="localhost" appBase="webapps" unpackWARs=& ...
- Java定时器的三种实现方式
一.普通thread /** * 普通thread * 这是最常见的,创建一个thread,然后让它在while循环里一直运行着, * 通过sleep方法来达到定时任务的效果.这样可以快速简单的实现, ...
- Spring Boot 之注解@Component @ConfigurationProperties(prefix = "sms") 使用@ConfigurationProperties读取yml配置
从spring-boot开始,已经支持yml文件形式的配置,@ConfigurationProperties的大致作用就是通过它可以把properties或者yml配置直接转成对象 @Componen ...
- 20165327 2017-2018-2 《Java程序设计》第9周学习总结
20165327 2017-2018-2 <Java程序设计>第9周学习总结 教材内容总结 第十三章 (一)教材学习内容总结 理解 URL类是对统一资源定位符的抽象,使用URL创建对象的应 ...
- LeetCode--014--最长公共前缀(java)
编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow" ...
- android -------- Eclipse选择NDK路径时 “Not a valid NDK directory”
在 Eclipse选择NDK路径时 出现 “Not a valid NDK directory” 这样的错误 解决方式1 在你安装的ndk的主目录下创建一个ndk-build空文件,然后重新打开对话 ...