【C#】WindowsAPICodePack-Shell使用教程
来源:互联网 发布:java工程师招聘 编辑:程序博客网 时间:2024/06/18 05:26
1.首先在项目中添加WindowsAPICodePack的Nuget包。
点击安装即可。
2.获取《我的电脑》的名字和电脑图标
ShellObject so = ShellFileSystemFolder.FromParsingName(KnownFolders.Computer.ParsingName); displayName = so.Name; Bitmap bm = so.Thumbnail.SmallBitmap; bm.MakeTransparent(System.Drawing.Color.Black);其中,so.Name就是“我的电脑”的名字,注意不是机器名哦,机器名可以直接通过Environment.MachineName获取。
电脑图标可以通过so的Thumbnail获取,可以获得SmallBitmap,Bitmap,LargeBitmap,SmallIco,Ico,LargeIco等。不过由于获取到的Bitmap的背景色由之前的透明色变成了黑色,可以是因为api的原因,所以需要我们用MakeTransparent手动转为透明色。
获取到的电脑图标如下:
其中,KownFolders这个类功能很丰富,里面包含系统的一些特殊文件夹,如“我的文档”、“我的音乐”、“桌面”、“网络连接”等,可直接访问。比.Net Framework里的Environment.SpecialFolders更强大。
3.获取文件/文件夹的图标
获取文件夹信息时,可以调用ShellFolder.FromParsingName(string FolderPath),它返回一个ShellObject对象,通过此对象的Thumbnail属性可以得到图标,方法如第二步。
获取文件图标时,调用ShellFile.FromFilePath(string filePath),返回一个ShellFile对象,调用对象的Thumbnail属性可以获得图标。
4.获取文件/文件夹的属性信息
4.1获取指定的属性信息
ShellPropertyCollection props = new ShellPropertyCollection(path); typeName = props.Where(prop => prop.CanonicalName == "System.IsFolder").First().FormatForDisplay(PropertyDescriptionFormatOptions.None);以上,代码可以获得一个值用来判断给定的path是一个文件夹还是一个文件。
4.2获取文件/文件夹所有不为null的属性信息
ShellPropertyCollection cooll = new ShellPropertyCollection(@"c:"); var properties = cooll.Where(prop => prop.CanonicalName != null).OrderBy(prop=>prop.CanonicalName).ToArray(); Array.ForEach( properties, p => { DisplayPropertyValue(p); });其中,DisplayPropertyValue()方法为:
private static void DisplayPropertyValue(IShellProperty prop) { string value = string.Empty; value = prop.ValueAsObject == null ? "" : prop.FormatForDisplay( PropertyDescriptionFormatOptions.None); Debug.WriteLine(prop.CanonicalName + "-------" + value); }如例子所示,C:这个文件夹的属性信息如图:
(文件夹的不同,可展示出来的属性信息数量也不同)
如果把C:改为一个文件的路径,如:C:\1.txt。它的属性信息为(没有完全截出来):
获取某个盘符的名称:
var item=ShellFileSystemFolder.FromFolderPath("c:\\"); Console.WriteLine(string.Format("displayname is {0},name is {1}", item.GetDisplayName(DisplayNameType.Default), item.Name)); Console.Read();
输出:displayname is Local Disk (C:),name is Local Disk (C:)
最后:送给大家项目的github地址:https://github.com/aybe/Windows-API-Code-Pack-1.1
其中source/Samples里有各种各样的Demo,大家可以参考。
阅读全文
0 0
- 【C#】WindowsAPICodePack-Shell使用教程
- HBase shell使用教程
- C Shell教程(打包下载)
- HDD Regenerator Shell使用教程
- Scrapy Shell的使用教程
- Ubuntu使用C调用Shell
- Python:Scrapy Shell的使用教程
- shell 教程六:函数的使用
- Shell 命令教程(三) Vim使用
- Shell教程
- Shell教程
- shell教程
- shell教程
- Shell教程
- shell 教程
- shell教程
- Shell教程
- shell教程
- 继承、实现、依赖、关联、聚合、组合的联系与区别
- ajax请求得到后台数据,前台页面,使用table模板然后clone,显示表格,,不用append拼接 “字符串和HTML表格标签”
- Altium更改原理图纸张的大小
- 将library上传到jcenter 中文和特殊字符的解决
- 开始记录一些东西
- 【C#】WindowsAPICodePack-Shell使用教程
- 同一个电脑安装两个版本的JDK
- 微信接口开发,errcode 45047
- Tcl/Tk windows版下载与安装过程
- c 十六进制打印
- BZOJ1344 [Baltic2007]Connected Points连点
- Oracle 高水位说明和释放表空间,加快表的查询速度
- VB 中的BatchUpdate 使用
- HTML2Excel 将table2excel 将table转换为Excel 支持合并单元格,边框 -- HTML2OFFICE教程1