用户库可以用来存放用户喜爱的媒体文件、图片以及用户创建的文件,根据其中存放内容的不同类型,用户库分为图片库、音乐库、文档库和视频库,在应用程序中,通过使用相应的API可以向这些库中添加新的文件、文件夹或者重新组织存放在用户库中的文件。本节将详细讲解这部分内容,不过在开始之前先介绍一下这里会用到的相关API,供读者参考。 13.2.1 API参考
为了实现对用户库的各种操作,本节主要会用到以下类、方法和属性。
q KnownFolders类,提供对用户库中常见位置的访问,如图片库、文档库、音乐库等。以下为此类的一些常用属性。
m DocumentsLibrary,获取文档库。
m MusicLibrary,获取音乐库。
m PicturesLibrary,获取图片库。
m VideosLibrary,获取视频库。
q StorageFolder类,获取文件夹及文件夹中内容的相关信息,并且提供一些操作它们的方法。以下为StorageFolder类的一些常用方法。
m CreateFileAsync(String),在文件夹中创建一个新的文件,String类型参数代表文件名。
m CreateFileAsync(String, CreationCollisionOption),在当前文件夹中创建一个新的文件,如果原文件之前存在,则可选择将其覆盖或者打开等操作。
m GetFilesAsync(),从当前文件夹中获取其子文件列表。
m GetFolderAsync(),从当前的文件夹中获取一个子文件夹。
m GetFoldersAsync(),从当前文件夹中获取其子文件夹的列表。
q StorageFile类,获取文件及文件内容的相关信息,并且提供一些操作它们的方法。以下是StorageFile类的一些常用方法。
m OpenAsync(),打开一个指定的文件并返回随机访问流。
m OpenReadAsync(),在当前文件中打开一个随机访问流,以读取文件中的内容。
m DeleteAsync(),删除当前文件。
q FileIO类,提供对文件读取和写入方法。以下为FileIO类的一些常用方法。
m WriteTextAsync(IStorageFile,string),向文件中写入文本数据。
m WriteTextAsync(IStorageFile, String, UnicodeEncoding),向文件中写入文本数据,并指定其字符编码。
m ReadTextAsync(IStorageFile),读取文件的文本数据。
m ReadTextAsync(IStorageFile, UnicodeEncoding),读取文件的内容,并且指定其字符编码。
m ReadBufferAsync(),读取指定文件的内容,并返回一个缓冲区。
m WriteBufferAsync(),将缓冲区中的数据写到指定文件中。
给出了一些本节会用到的方法和属性之后,下面来介绍如何使用这些属性和方法对用户库进行操作。 13.2.2 用户库文件操作
(1)获取用户库位置
如果想要通过应用程序在用户库中创建文件,首先需要获得用户库中指定的位置,例如图片库、文档库等。这里值得注意的是,在获取用户库的位置之前,必须在Windows应用商店项目的清单文件Package.appxmanifest中开启相应的访问权限,如果应用需要访问音乐库,就需要在Package.appxmanifest文件的功能选项卡中勾选“音乐库”,如图13-4所示。