在应用程序中有时可能需要获取用户库中的内容,以便执行相关的操作。如果要获取某个用户库中的内容,需要先获取到这个用户库,获得用户库可以通过Windows.Storage命名空间中的KnownFolders类的相应属性来实现,可用属性包括documentsLibrary(文档库)、musicLibrary(音乐库)和videosLibrary(视频库)等。获取到用户库之后,就可以使用KnownFolders类中的getItemsAsync、getFilesAsync或getFoldersAsync函数来获取库中的内容。其中,getItemsAsync函数可以获取库中的文件和文件夹,getFilesAsync函数只会获取库中的文件,而getFoldersAsync函数只会获取库中的文件夹,在实际开发中可以根据需要选用适合的函数来实现相应的功能。下面以获取图片库中的文件和文件夹为例来演示如何获取用户库中的内容。

新建一个JavaScript的Windows应用商店的空白应用程序项目,将其命名为GetFilesAndFoldersApplication。打开default.html文件,在body元素中添加一个h2元素、一个文本区和一个按钮,其中h2元素用来显示页面标题“获取文件和文件夹列表示例”,按钮用于获取图片库中的内容,文本区用来显示获取到的内容。相应的HTML代码片段如下所示:

<body>

<h2 class="articleTitle">获取文件和文件夹列表示例</h2>

<textarea id="textareaID" rows="5" cols="5">图片库中的内容包括:</textarea>

<br />

<button id="ButtonID">获取图片库中的内容</button>

</body>

在上面的代码中,为了便于设计CSS样式和检索控件,在添加控件时为其设置了类名和ID。其中,设置h2元素的class属性值为articleTitle,同时,设置文本区和“获取图片库中的内容”按钮的id属性值分别为textareaID和ButtonID。

接着,在default.css文件中添加如下代码来控制default.html页面的布局。

/*设置h2元素的文本字体大小和在应用程序界面中的显示位置*/

.articleTitle {

font-size: x-large;

margin: 20px 15px 10px 87px;

}

/*设置textarea控件在界面中的显示位置*/

#textareaID {

margin: 20px 15px 10px 90px;

}

/*设置“获取图片库中的内容”按钮在界面中的显示位置*/

#ButtonID {

margin: 20px 15px 10px 150px;

}

完成前台界面的布局后,应用程序界面效果如图19-17所示。

图19-17 前台界面效果图

布局好前台界面后,接下来介绍如何获取图片库中的内容。打开default.js文件,在“args.setPromise(WinJS.UI.processAll());”语句后添加如下代码,为“获取图片库中的内容”按钮注册click事件处理函数。

document.getElementById("ButtonID").addEventListener("click", GetFilesAndFolders);

代码中以“ButtonID”为参数调用document对象的getElementById函数来查找id属性值为ButtonID的元素对象,并使用addEventListener函数为该元素对象的click事件注册事件处理函数GetFilesAndFolders。下面来看一下事件处理函数GetFilesAndFolders的实现代码。

GetFilesAndFolders函数用来处理“获取图片库中的内容”按钮的单击事件,实现从图片库中获取到文件和文件夹列表。该函数的代码添加在default.js文件中的“app.onactivated = function (args) {...};”语句后,相应的JavaScript代码片段如下所示:

function GetFilesAndFolders() {

//先获取到图片库

var folderObject = Windows.Storage.KnownFolders.picturesLibrary;

//然后调用getItemsAsync函数获取图片库中的内容,包括文件和子文件夹

folderObject.getItemsAsync().then(function (items) {

var textareaObject = document.getElementById("textareaID");

//将获取到的文件和文件夹显示在文本区中

items.forEach(function (item) {

if (item.isOfType(Windows.Storage.StorageItemTypes.folder)) {

//如果当前项是文件夹,则在文本区中显示该文件夹的名称

textareaObject.innerText += "\r\n" + "文件夹: " + item.name;

}

else if (item.isOfType(Windows.Storage.StorageItemTypes.file)) {

//如果当前项是文件,则在文本区中显示该文件的名称

textareaObject.innerText += "\r\n" + "文件: " + item.name;

}

});

});

}

上面的代码首先通过Windows.Storage.KnownFolders类的picturesLibrary属性获取到代表图片库的文件夹对象,并赋值给变量folderObject;接着通过folderObject变量调用文件夹对象的getItemsAsync函数获取图片库中的内容,getItemsAsync函数调用完成之后定义一个匿名函数,用于将获取到的文件和文件夹名称显示在文本区中。在这个匿名函数中,以“textareaID”为参数调用document对象的getElementById函数来查找id属性值为textareaID的元素对象,并赋值给变量textareaObject;然后调用参数items的forEach函数依次遍历items集合中的每个数据项item,并通过item对象的isOfType函数判断该对象的类型,如果item对象是一个文件夹,则将字符串“文件夹: ”和该文件夹的名称显示到文本区中,如果item对象是一个文件,则将字符串“文件: ”和该文件的名称显示到文本区中。

启动调试,单击“获取图片库中的内容”按钮,就会获取到图片库中的内容,包括文件和文件夹,同时这些文件和文件夹的名称显示在文本区中,效果如图19-18所示。

图19-18 成功获取图片库中的内容的效果

Windows Store App JavaScript 开发:获取文件和文件夹列表相关推荐

  1. Windows Store App JavaScript 开发:小球运动示例

    通过前面内容的学习,相信读者已经对开发基于JavaScript的Windows应用商店应用有了一定的了解,本小节通过一个小球运动的示例来介绍如何新建一个JavaScript的Windows应用商店项目 ...

  2. Windows Store App 获取文件及文件夹列表

    通过使用13.2.1小节给出的方法和属性,不仅可以对用户库中的文件和文件夹进行操作,还可以获取其中所有的文件或者文件夹,比如为了完整地展现整个音乐库,可以获取并列举出音乐库中所有的音乐文件,以便能够在 ...

  3. Windows Store App 音频和视频

    在Windows应用商店应用中提供了MediaElement控件,该控件能为应用提供音频和视频播放功能.就像之前提到的,虽然在多媒体应用开发中,开发人员可以自行开发一套音频.视频编解码规范和开发媒体播 ...

  4. [转]Windows 7 蓝屏后获取 MEMORY.DMP 文件及注意事项

    转自:http://hi.baidu.com/guicomeon/item/d6753a177fc76f0f8fbde46a 系统默认会在 C:\Windows 目录下创建 MEMORY.DMP 文件 ...

  5. Windows Store App 图像

    在Windows应用商店应用中可以使用两种方法来显示图片,这两种方法分别为使用Image对象和使用ImageBrush对象.Image对象可以直接呈现一幅图像,而ImageBrush对象则可以用一幅图 ...

  6. 在windows中使用bat脚本获取linux服务器文件

    1.首先安装好WinScp 软件,这里不详细介绍. 2.去安装目录获取Winscp.com 的路径. 3.使用如下2个脚本即可. get_boot_image.bat C:\WinSCP\WinSCP ...

  7. C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法。...

    C# Windows Phone 8 WP8 开发,将WebClient的DownloadStringCompleted事件改成非同步的awiat方法. 原文:C# Windows Phone 8 W ...

  8. 09、win32 转换为 store app

    1.机制: 微软的 Project Centernial ( Project C) 项目的就是把传统的 windows桌面应用程序 转换为 windows10 store app (appx). 目的 ...

  9. 如何将Windows 10帐户还原为本地帐户(在Windows Store劫持它之后)

    If your Windows 10 user account is currently a Microsoft account (by your choice or because you got, ...

最新文章

  1. java 用面向接口编程的方式开发打印机_Java“打印机”模型理解面向接口编程。实现接口定义类,接口实现类,核心“业务”类分离...
  2. R7-1 新世界 (5 分)
  3. 法国spin高等计算机学校,spin-去展网
  4. 阿里巴巴泰山版java开发手册最新版.pdf 百度网盘分享
  5. qt样式表设置边框_Qt样式表之 QSS 语法介绍
  6. win7系统备份还原软件_傲梅轻松备份bug导致系统还原0x81000203错误,
  7. Python中print函数细节——默认换行
  8. Parquet 格式文件
  9. 解决谷歌浏览器拦截文件只有舍弃选项问题
  10. 游戏设计模式-单例模式
  11. 利用主成分PCA进行特征提取
  12. matlab只读改为可修改,matlab – 获取绘图的只读属性名称列表
  13. (转)Java学习书籍推荐
  14. Dell服务器出错代码和含义
  15. 记录zoneminder搭建家庭监控全过程
  16. 单片机 P0口、P1口 寄存器和引脚的不同
  17. 计算机技术对国防事业,国防事业突飞猛进,那么“国防类”最强的大学,都有哪些?...
  18. Java 并发专题 CyclicBarrier 打造一个安全的门禁系统
  19. 微信网页下载无效 微信里的APK链接打不开的解决方案
  20. 十转二进制的转换及其简便方法

热门文章

  1. 地方弱势运营商如何发展宽带业务?
  2. 利用Java存储过程简化数据库操作
  3. 带你简单了解通信工程
  4. 找出和为某个数的连续正整数序列
  5. jquery.validate不用submit而用js提交的例子
  6. Java笔试题二:读程序
  7. IPSec 之 Server2003Cisco路由器(1)
  8. [转] java的 Collection 和 Map 详解
  9. #人生中对我最重要的三位老师
  10. Python defaultdict 模块和 namedtuple 模块