zoukankan      html  css  js  c++  java
  • Windows Store App 获取文件及文件夹列表

    通过使用13.2.1小节给出的方法和属性,不仅可以对用户库中的文件和文件夹进行操作,还可以获取其中所有的文件或者文件夹,比如为了完整地展现整个音乐库,可以获取并列举出音乐库中所有的音乐文件,以便能够在应用程序中浏览、查找喜爱的音乐。本节主要介绍如何获取文件和文件夹列表,因为对于音乐库、图片库等用户库来说,获取其中文件和文件夹的方法相同,所以接下来将以图片库为例进行介绍。

    想要读取图片库中的文件或文件夹列表,首先需要使用上面介绍过的方法获取图片库位置,然后使用异步方法GetFilesAsyncGetFoldersAsync分别获得图片库中的所有文件和文件夹。以下是一段获得图片库中所有文件和文件夹名称的示例代码。

    StorageFolder picturesFolder = KnownFolders.PicturesLibrary;

    //创建一个可变字符串对象

    StringBuilder outputText = new StringBuilder();

    //获取到所有文件,将其存入只读类型集合中

    IReadOnlyList<StorageFile> fileList = await picturesFolder.GetFilesAsync();

    outputText.AppendLine("文件:");

    //遍历所有文件,并将文件名添加到可变字符串中

    foreach (StorageFile file in fileList)

    {

        outputText.Append(file.Name + " ");

    }

    //获取到所有文件夹,将其存入只读类型的集合中

    IReadOnlyList<StorageFolder> folderList = await picturesFolder.GetFoldersAsync();

    outputText.AppendLine("文件夹:");

    //遍历所有文件夹,并将文件夹名字添加到可变字符串中

    foreach (StorageFolder folder in folderList)

    {

        outputText.Append(folder.DisplayName + " ");

    }

    代码在获得了图片库位置之后,新建了一个可变字符串outputText,并调用异步方法GetFilesAsync获取图片库中所有的文件,使用fileList集合将其保存,通过foreach循环遍历fileList,将其中保存的所有文件的名称依次添加到outputText中,然后使用GetFoldersAsync方法获得图片库中所有的文件夹,并保存到folderList集合中,接着同样使用循环将所有文件夹的名称也添加到outputText中。

    上面介绍的方法是分别调用两个不同的方法来获取文件和文件夹,接下来介绍一种一次性获取到所有文件和文件夹的方法。

    在获得了图片库位置之后,可以使用GetItemsAsync方法获取到其中所有IStorageItem类型的对象,包括所有的文件和文件夹。示例代码如下所示:

    StorageFolder picturesFolder = KnownFolders.PicturesLibrary;

    StringBuilder outputText = new StringBuilder();

    //获取到文件和文件夹的列表,将其存入只读集合中

    IReadOnlyList<IStorageItem> itemsList = await picturesFolder.GetItemsAsync();

    foreach (var item in itemsList)

    {

    //判断item是不是文件夹

        if (item is StorageFolder)

        {

            outputText.Append(item.Name + " 文件夹 ");

        }

        else

    //这种情况中item是文件

        {

            outputText.Append(item.Name + " ");

        }

    }

    代码在获得了所有IStorageItem类型的对象并将其存入itemsList集合之后,使用foreach循环判断itemsList集合中的每一个元素是文件还是文件夹,如果是文件夹,在名称后面加上字符串“文件夹”,添加到可变字符串outputText中,如果是文件,也同样将名称添加到可变字符串outputText中。

    通过以上的介绍可以了解到,可以使用GetFilesAsyncGetFoldersAsync方法来分别获取用户库中的文件或文件夹。但如果只需要了解用户库中的具体内容,而不必区分文件和文件夹,则可使用GetItemsAsync方法。

  • 相关阅读:
    list切片
    class面向对象编程学习笔记
    斐波那契数
    module学习笔记
    Python基础
    产品经理培训行业---以起点学院为主体的相关竞品分析报告
    基础数据结构-二叉树-赫夫曼树的构建与编码
    大众点评APP分析随笔
    滴滴拼车功能分析
    梅沙教育APP简单分析-版本:iOS v1.2.21-Nathaneko-佳钦
  • 原文地址:https://www.cnblogs.com/finehappy/p/4213378.html
Copyright © 2011-2022 走看看