使用文件选取器可以访问除上面介绍的“应用程序存储”和“用户库”两个位置之外的本地文件或者文件夹。文件选取器是应用与系统进行交互的一个接口,通过文件选取器可以在应用中直接与文件系统进行交互,访问不同位置的文件或将文件存储在指定位置。

文件选取器包含文件打开选取器和文件保存选取器,文件打开选取器由FileOpenPicker类表示,用来选择或打开文件,而文件保存选取器由FileSavePicker类表示,用来在保存文件时对文件的扩展名、存储位置等进行选择。这两种选择器的使用方法大致相同,所以下面以文件打开选取器为例进行介绍。

在使用文件打开选取器的过程中,通过设置文件打开选取器的属性可以自定义文件选取器的视图模式、初始位置或文件类型集合。下面先来介绍一下文件打开选取器的几个常用属性。

q  ViewMode,获取或设置文件打开选取器用来展示文件或文件夹的视图模式。属性的值由PickerViewMode枚举指定,该枚举包含两个枚举成员,List和Thumbnail,List表示列表模式,Thumbnail则表示缩略图模式。

q  SuggestedStartLocation,获取或者设置文件打开选取器显示的初始位置。属性的值由PickerViewMode枚举指定,此枚举有8个枚举成员分别用来表示不同的位置,包括计算机、图片库等,这里不再一一列举。

q  FileTypeFilter,获取文件打开选取器显示的文件类型集合,这些文件类型可以是“.doc”、“.png”等。

在了解了常用属性之后,接下来给出一段创建文件打开选取器的示例代码。

//创建文件选取器

FileOpenPicker openPicker = new FileOpenPicker();

//将ViewMode属性设为Thumbnail

openPicker.ViewMode = PickerViewMode.Thumbnail;

//将文件选取器打开文件的开始位置设置为图片库

openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;

//设置选取器可以选取的文件格式

openPicker.FileTypeFilter.Add(".jpg");

openPicker.FileTypeFilter.Add(".jpeg");

openPicker.FileTypeFilter.Add(".png");

代码创建了一个FileOpenPicker类的对象openPicker作为文件打开选取器,设置openPicker的ViewMode属性的值为PickerViewMode.Thumbnail,将视图模式设定为缩略图模式,通过SuggestedStartLocation属性将选择器的初始位置定位在图片库,并使用FileTypeFilter属性获取选择器显示的文件类型集合,然后调用Add方法将需要使用的文件类型添加到集合中。

创建了文件打开选取器之后,就可以通过文件打开选取器来选择文件了。当需要选择单个文件时,使用文件打开选取器的PickSingleFileAsync方法可以实现。示例代码如下所示:

Windows.Storage.StorageFile file = await openPicker.PickSingleFileAsync();

if (file != null)

{

    // 在页面中显示所选文件名称

}

else

{

    //在页面中提示用户没有文件返回

}

代码在获取到选定的文件file后,对file进行了判断,如果file不为空,则显示文件的名称,否则显示“没有文件返回”。

而当使用文件打开选取器选择多个文件时,需要调用选取器的PickMultipleFilesAsync方法,示例代码如下所示:

IReadOnlyList<Windows.Storage.StorageFile> files = await openPicker.PickMultipleFilesAsync();

if (files.Count > 0)

{

    // 显示所有文件名称

    foreach (Windows.Storage.StorageFile file in files)

    {

        //在页面中显示所选文件名称

    }

}

else

{

    //在页面中提示用户“没有文件返回”

}

代码首先获取选定的文件集合files,然后判断集合files的元素个数是否大于0,如果大于0,依次显示集合中所有文件的名称,否则显示提示信息“没有文件返回”。

Windows Store App 文件选取器的更多相关文章

  1. Windows Store App JavaScript 开发:文件选取器

    正如前面章节C#语言中所介绍的,文件选取器是应用与系统进行交互的一个接口,通过文件选取器可以在应用中直接与文件系统进行交互,访问不同位置的文件或文件夹,或者将文件存储在指定位置.文件选取器分为对文件进 ...

  2. 重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口

    原文:重新想象 Windows 8 Store Apps (26) - 选取器: 自定义文件选取窗口, 自定义文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (26) ...

  3. Windows Store App JavaScript 开发:选取文件和文件夹

    前面提到过,文件打开选取器由FileOpenPicker类表示,用于选取或打开文件,而文件夹选取器由FolderPicker类表示,用来选取文件夹.在FileOpenPicker类中,pickSing ...

  4. 重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口

    原文:重新想象 Windows 8 Store Apps (25) - 选取器: 文件选取窗口, 文件夹选取窗口, 文件保存窗口 [源码下载] 重新想象 Windows 8 Store Apps (2 ...

  5. 重新想象 Windows 8 Store Apps (28) - 选取器: CachedFileUpdater(缓存文件更新程序)

    原文:重新想象 Windows 8 Store Apps (28) - 选取器: CachedFileUpdater(缓存文件更新程序) [源码下载] 重新想象 Windows 8 Store App ...

  6. 重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口

    原文:重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口 [源码下载] 重新想象 Windows 8 Store Apps (27) - ...

  7. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  8. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

  9. Windows Store App 近期访问列表

    Windows 8系统在管理用户的文件时,会将用户近期访问的文件添加到对应应用的近期访问列表中,所有的Windows应用商店应用都有各自的近期访问列表,根据文件的上一次访问时间,可以在列表中对文件进行 ...

随机推荐

  1. JSP 运行

    Tomcat 上运行 JSP 应用程序 完成一些包装工作后,才能在 Tomcat 上运行 index.jsp 程序.通常需要按照以下步骤操作: 创建 JSP 应用程序.如果只使用一个页面,则称它为 i ...

  2. 简明python教程 --C++程序员的视角(一):数值类型、字符串、运算符和控制流

    最初的步骤 Python是大小写敏感的 任何在#符号右面的内容都是注释 >>> help('print')在“print”上使用引号,那样Python就可以理解我是希望获取关于“pr ...

  3. curl常用选项详解

    curl常用选项详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 又是下班的时间了,让我们一起来学习一下今天的Linux命令吧~我一半只把自己常用的参数列出来,其他的有但是我们几 ...

  4. NS_ENUM vs. NS_OPTIONS

    NS_ENUM用于定义普通枚举值,NS_OPTIONS用于定义位移相关操作的枚举值: typedef NS_ENUM(NSUInteger, EOCConnectionState) { EOCConn ...

  5. [转]Struts1.x系列教程(1):用MyEclipse开发第一个Struts程序

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/13/251101.html 本系列教程将详细介绍Struts 1.x的基本原理和使用方法, ...

  6. oracle表分区详解

    原文来自:http://www.cnblogs.com/leiOOlei/archive/2012/06/08/2541306.html oracle表分区详解 从以下几个方面来整理关于分区表的概念及 ...

  7. 【java报错】Could not instantiate listener

    这个错误以前出现过好几次,莫名其妙的出现,莫名其妙的解决掉...昨天好好的,今天又出现了,记下来 2015-03-03 09:38:45.105:INFO:oejs.Server:jetty-8.1. ...

  8. Unity3D中Console控制台的扩展

    Assert Store上有一个Editor Console Pro,功能非常全面,百度也能搜到破解.如果有需要建议使用,不要再造车轮 起初因为自带Console功能太弱,有不少可以提升空间.于是尝试 ...

  9. Swashbuckle for asp.net core 配置说明

    0x00 安装 Swashbuckle 6.0 打开程序包管理器控制台,输入: Install-Package Swashbuckle -Pre 0x01 配置 Startup.cs public v ...

  10. CyclicBarrier和CountDownLatch的差别

    CyclicBarrier和CountDownLatch都用多个线程之间的同步,共同点:同时有N个线程在 CyclicBarrier(CountDownLatch) 等待上等待时,CyclicBarr ...