• Windows Store App 用户库文件分组


    Windows应用商店应用程序中浏览用户库中的文件时,可以将文件或者文件夹分组显示,以便于进行分类浏览,这类似于音乐库中的文件可以按照艺术家名称、创建日期或者评级等多种方式进行分类。本节内容将会介绍如何对用户库中的文件进行分组。

    下面以一个应用程序为例,介绍如何将图片库中的文件根据文件类型进行分组,并显示分组后的结果。

    Visual Studio 2012中新建一个Windows应用商店的空白应用程序项目,并命名为FileGroup。由于应用需要访问图片库,所以首先需要为应用开启图片库访问权限,双击打开项目的package.appxmanifest文件,选择其中的功能选项卡,勾选选项卡中的“图片库”选项,然后保存修改,设置结果如图13-5所示。

    13-5 启用图片库访问功能

    从上面的介绍可以知道,本示例不只是对图片库中的文件根据类型的不同进行分组,还要把分组后的结果显示出来,为了实现这些功能,这里在MainPage.xaml文件的Grid元素中添加如下代码,添加一个用于显示文件名称的文本块。

    <TextBlock x:Name="ShowTextBlock"  Margin="50,50" FontSize="20"/>

    布局好前台界面后,下面来介绍后台功能的实现,在MainPage.xaml.cs文件中添加一个GroupFile方法用于实现图片库中文件的分组操作,具体实现代码如下所示:

    private async void GroupFile()

    {

        //获得图片库

        StorageFolder pictureFolder = KnownFolders.PicturesLibrary;

        StorageFolderQueryResult result  =   pictureFolder.CreateFolderQuery(CommonFolderQuery.GroupByType);

        //创建可变字符串对象

        StringBuilder builder = new StringBuilder();

    //获取文件夹

        IReadOnlyList<StorageFolder> folderlist =  await result.GetFoldersAsync();

        foreach (StorageFolder folder in folderlist)

        {

            IReadOnlyList<StorageFile> filelist = await folder.GetFilesAsync();

            builder.Append(folder.Name + "(" + filelist.Count + ")"+" ");

            foreach (StorageFile file in filelist)

            {

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

            }

        }

        ShowTextBlock.Text = builder.ToString();

    }

    方法首先通过KnownFolders类的PicturesLibrary属性获取图片库位置,为了根据文件夹中文件类型的不同进行相应的分组,接下来以CommonFolderQuery枚举的GroupByType成员作为参数,使用CreateFolderQuery方法创建代表分组查询结果的StorageFolderQueryResult类对象result,新建可变字符串builder,并通过GetFoldersAsync方法异步获取result中以文件类型命名的文件夹,将其保存在folderlist集合中,然后使用foreach循环遍历folderlist,调用GetFilesAsync方法获得每个类型文件夹中的所有文件,将文件夹的名称和其中包含文件的数量一同添加到builder中,并依次把各个文件的名称也添加到builder中,最后把builder转换成字符串形式赋值给ShowTextBlock文本块的Text属性,将文件夹和文件名称显示在文本块中。

    除了代码中使用的GroupByTypeCommonFolderQuery枚举还有其他12个枚举成员,包括GroupByMonthGroupByAuthor等,这里不再一一列举。

    为了能够在应用界面显示的同时显示文件夹和文件的名称,这里在MainPage构造方法中调用GroupFile方法。代码如下所示:

    public MainPage()

    {

        this.InitializeComponent();

        GroupFile();

    }

    运行程序,前台界面显示效果如图13-6所示:

    13-6 图片文件分类效果图

    从图13-6中可以看到,界面上显示了JPEG图像和PNG图像两个文件夹,在JPEG图像文件夹中含有三个扩展名为“.jpg”的图片文件,PNG图像文件夹中包含了两个扩展名为 .png”的图片文件。

  • 相关阅读:
    8.13实习报告
    8.10实习报告
    8.9实习报告
    8.8实习报告
    8.7实习报告
    关于线索二叉树建立和遍历
    main函数的位置可以任意
    返回指针值的函数和函数指针的区别
    runtime error: store to address 0x625000002048 with insufficient space for an object of type 'double' (solution.c) 0x625000002048: note: pointer points here
    m=-n++
  • 原文地址:https://www.cnblogs.com/finehappy/p/4213381.html
Copyright © 2020-2023  润新知