原文:UWP入门(十)--获取文件属性

重要的 API

  • StorageFile.GetBasicPropertiesAsync

    • StorageFile.Properties
    • StorageItemContentProperties.RetrievePropertiesAsync

1. 获取文件的顶级属性

很多顶级文件属性都可以作为 StorageFile 类的成员进行访问。 这些属性包括文件属性、内容类型、创建日期、显示名称和文件类型等

注意: 请记住,要声明 picturesLibrary 功能

// Enumerate all files in the Pictures library.
var folder = KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync(); foreach (StorageFile file in files)
{
StringBuilder fileProperties = new StringBuilder(); // Get top-level file properties.
fileProperties.AppendLine("File name: " + file.Name);
fileProperties.AppendLine("File type: " + file.FileType);
}

2.获取文件的基本属性

很多基本文件属性都通过先调用 StorageFile.GetBasicPropertiesAsync 方法获得。 此方法会返回一个 BasicProperties 对象,该对象将定义项(文件或文件夹)的大小属性,以及上次修改项的时间。

此示例枚举了图片库中的所有文件,从而访问每个文件中的一些基础属性

// Enumerate all files in the Pictures library.
var folder = KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync(); foreach (Windows.Storage.StorageFile file in files)
{
StringBuilder fileProperties = new StringBuilder(); // Get file's basic properties.
FileProperties.BasicProperties basicProperties =
await file.GetBasicPropertiesAsync();
string fileSize = string.Format("{0:n0}", basicProperties.Size);
fileProperties.AppendLine("File size: " + fileSize + " bytes");
fileProperties.AppendLine("Date modified: " + basicProperties.DateModified);
}

3. 获取文件的扩展属性(用时候再看)

除了顶级和基本文件属性之外,还有一些与文件内容有关的属性。 这些扩展属性可以通过调用 BasicProperties.RetrievePropertiesAsync 方法来访问。 (通过调用 StorageFile.Properties 属性可以获得 BasicProperties 对象。)尽管顶级和基本文件属性可以分别作为类的 StorageFile 和 BasicProperties 属性进行访问,但扩展属性只能通过以下方法获得:

将代表将要检索的属性名称的 String 对象的 IEnumerable 集合传递到 BasicProperties.RetrievePropertiesAsync 方法。 此方法随后会返回一个 IDictionary 集合。 然后,可以按名称或按索引从该集合中检索每个扩展属性。

以下示例枚举了图片库中的所有文件,并指定了一个 List 对象中所需属性(DataAccessed 和 FileOwner)的名称,将该 List 对象传递到 BasicProperties.RetrievePropertiesAsync 以检索这些属性,然后按名称从返回的 IDictionary 对象中检索这些属性

const string dateAccessedProperty = "System.DateAccessed";
const string fileOwnerProperty = "System.FileOwner"; // Enumerate all files in the Pictures library.
var folder = KnownFolders.PicturesLibrary;
var query = folder.CreateFileQuery();
var files = await query.GetFilesAsync(); foreach (StorageFile file in files)
{
StringBuilder fileProperties = new StringBuilder(); // Define property names to be retrieved.
var propertyNames = new List<string>();
propertyNames.Add(dateAccessedProperty);
propertyNames.Add(fileOwnerProperty); // Get extended properties.
IDictionary<string, object> extraProperties =
await file.Properties.RetrievePropertiesAsync(propertyNames); // Get date-accessed property.
var propValue = extraProperties[dateAccessedProperty];
if (propValue != null)
{
fileProperties.AppendLine("Date accessed: " + propValue);
} // Get file-owner property.
propValue = extraProperties[fileOwnerProperty];
if (propValue != null)
{
fileProperties.AppendLine("File owner: " + propValue);
}
}

UWP入门(十)--获取文件属性的更多相关文章

  1. UWP入门(十)--创建、写入和读取文件

    原文:UWP入门(十)--创建.写入和读取文件 核心的 API github代码 StorageFolder 类 StorageFile 类 FileIO 类 使用 StorageFile 对象读取和 ...

  2. UWP入门(十二)--数据绑定用法

    原文:UWP入门(十二)--数据绑定用法 主要几个元素: Template DataTemplate ItemSource 数据绑定是一个数据提取的方法,能使数据和UI上的控件紧密相连,下面的Demo ...

  3. win10 uwp 入门

    UWP是什么我在这里就不说,本文主要是介绍如何入门UWP,也是合并我写的博客. 关于UWP介绍可以参见:http://lib.csdn.net/article/csharp/32451 首先需要申请一 ...

  4. UWP入门(九)-- 枚举和查询文件和文件夹

    原文:UWP入门(九)-- 枚举和查询文件和文件夹 核心 API 所在的命名空间: Windows.Storage Windows.Storage.Streams Windows.Storage.Pi ...

  5. UWP入门(六)-- ResourceDictionary 和 XAML 资源引用

    原文:UWP入门(六)-- ResourceDictionary 和 XAML 资源引用 你最希望声明为 XAML 资源的 XAML 元素包括 Style.ControlTemplate.动画组件和 ...

  6. UWP 入门教程2——如何实现自适应用户界面

    系列文章 UWP入门教程1——UWP的前世今生 如上文所说的,布局面板根据可用的屏幕空间,指定界面元素的大小和位置.例如StackPanel 会水平或垂直排列界面元素.Grid 布局与CSS 中的表格 ...

  7. Android入门(十二)SQLite事务、升级数据库

    原文链接:http://www.orlion.ga/610/ 一.事务 SQLite支持事务,看一下Android如何使用事务:比如 Book表中的数据都已经很老了,现在准备全部废弃掉替换成新数据,可 ...

  8. 获取文件属性信息之stat、fstat和lstat

    UNIX文件系统是目录和文件组成的一种层次结构.目录(directory)是一个包含许多目录项的文件,在逻辑上,可以认为每个目录项都包含一个文件名,同时还包含说明该文件属性的信息.文件属性是指文件类型 ...

  9. OpenCV入门之获取验证码的单个字符(二)

      在文章 OpenCV入门之获取验证码的单个字符(字符切割)中,介绍了一类验证码的处理方法,该验证码如下: 该验证码的特点是字母之间的间隔较大,很容易就能提取出其中的单个字符.接下来,笔者将会介绍如 ...

随机推荐

  1. findbugs静态代码分析工具使用教程

    FindBugs 是一个静态分析工具,很多程序猿都在使用,再次详细列出findbugs的使用教程,希望对大家有帮助. 1 安装 FindBugs通过检查类文件或 JAR文件,将字节码与一组缺陷模式进行 ...

  2. Xamarin.Forms开发APP

    Xamarin.Forms+Prism(1)—— 开发准备 准备: 1.VS2017(推荐)或VS2015: 2.JDK 1.8以上: 3.Xamarin.Forms 最新版: 4.Prism 扩展, ...

  3. C#实现拼图游戏

    C#实现<拼图游戏> (下) 原理篇   前言:在 http://www.cnblogs.com/labixiaohei/p/6698887.html 程序设计 之 C#实现<拼图游 ...

  4. TDM-GCC是从mingw-w64项目patch而来,全部使用静态链接,对线程不需要额外的DLL,默认使用SJLJ异常(真是好东西)

    Windows版GCC之TDM-GCC 4.5.2 平时写 C/C++ 小程序的时候,不喜欢开VS,太庞大了,还要建项目.对于小程序,一个可以进行单文件编译的 IDE 是我的首选,我用的是 C-Fre ...

  5. 【17.76%】【codeforces round 382C】Tennis Championship

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  6. element-ui 自定义表单验证 , 但是不出现小红心了

    基本上按照文档上提供的方式做就没啥大问题 , 我遇到的问题是 , 自定义以后不显示小红星了 <el-form :model="ruleForm2" status-icon : ...

  7. UML类图几种”关系“的总结

    在UML类图中,常见的有以下几种关系: 泛化(Generalization)(继承),  实现(Realization)(接口实现),组合(Composition),聚合(Aggregation),关 ...

  8. either you have JavaScript disabled or your browser does not support JavaScript

    作者:朱金灿 来源:http://blog.csdn.net/clever101 在服务器(操作系统为WindowsServer)上部署Hudson平台,使用IE访问:http://localhost ...

  9. 3.RabbitMQ相关概念的杂谈

    1.vhost,为什么我要有这个vhost呢? 这是因为可能有很多组使用RabbitMQ,有产品组,用户组,vhost,虚拟主机的意思,可以避免命名冲突. 2.Exchange,交换机 有四种交换机 ...

  10. std::string 简单入门

    string的定义原型 typedef basic_string<char, char_traits<char>, allocator<char> > string ...