WPF 获取程序路径的一些方法,根据程序路径获取程序集信息
一、WPF 获取程序路径的一些方法
方式一 应用程序域
//获取基目录即当前工作目录
string str_1 = System.AppDomain.CurrentDomain.BaseDirectory;
示例结果:F:\\WPF实例\\bin\\Debug\\
示例说明:取得Debug目录并且带斜杠
//获取应用程序基目录的名称
string str_2 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
示例结果:F:\\WPF实例\\bin\\Debug\\
示例说明:取得Debug目录并且带斜杠
方式二 通过管理应用程序
//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str_3 = System.Windows.Forms.Application.StartupPath;
示例结果:F:\\WPF实例\\bin\\Debug
示例说明:取得Debug目录不带斜杠
//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str_4 = System.Windows.Forms.Application.ExecutablePath;
示例结果:F:\\WPF实例\\bin\\Debug\\WPF实例.EXE
示例说明:取得Debug目录下可执行程序EXE的完整路径
方式三 本地系统进程
//获取当前进程模块的完整路径。
string str_5 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
示例结果(调试状态):F:\\WPF实例\\bin\\Debug\\WPF实例.vshost.exe
示例结果(非调试状态):F:\\WPF实例\\bin\\Debug\\WPF实例.exe
示例说明:取得Debug目录下可执行程序EXE的完整路径
方式四 根据当前环境和平台获取信息
//获取或设置当前工作目录的完全限定路径。
string str_6 = System.Environment.CurrentDirectory;
示例结果:F:\\WPF实例\\bin\\Debug
示例说明:取得Debug目录不带斜杠
//通IO的通过目录和子目录的静态方法
string str_8 = System.IO.Directory.GetCurrentDirectory();
示例结果:F:\\WPF实例\\bin\\Debug
示例说明:取得Debug目录不带斜杠
二、WPF获取程序集详细信息
程序集设置图如下:
方式一 使用FileVersionInfo
string filePath = System.Windows.Forms.Application.ExecutablePath;
var versionInfo = System.Diagnostics.FileVersionInfo.GetVersionInfo(filePath);
var FileName = versionInfo.FileName; //"F:\\WPF实例\\bin\\Debug\\WPF实例.EXE"
var FileDescription = versionInfo.FileDescription; //"WPF实例"
var ProductName = versionInfo.ProductName; //"WPF实例"
var CompanyName = versionInfo.CompanyName; //"Micro"
var FileVersion = versionInfo.FileVersion; //"5.6.7.8"
var ProductVersion = versionInfo.ProductVersion; //"5.6.7.8"
var ProductMajorPart = versionInfo.ProductMajorPart; //5
var ProductMinorPart = versionInfo.ProductMinorPart; //6
var ProductBuildPart = versionInfo.ProductBuildPart; //7
var ProductPrivatePart = versionInfo.ProductPrivatePart;//8
// 通常版本号显示为「主版本号.次版本号.生成号.专用部件号」
var Version = String.Format("{0}.{1}.{2}.{3}", ProductMajorPart, ProductMinorPart, ProductBuildPart, ProductPrivatePart);
var Language = versionInfo.Language; //"语言中性"
var OriginalFilename = versionInfo.OriginalFilename; //"WPF实例.exe"
var LegalCopyright = versionInfo.LegalCopyright; //"Copyright © 2018"
方式二 利用反射取得程序集信息
string filePath = System.Windows.Forms.Application.ExecutablePath;
System.Reflection.Assembly assembly = System.Reflection.Assembly.LoadFile(filePath);
var assemblyName = assembly.GetName();
string str_20 = assemblyName.Name.ToString(); //WPF实例
string str_21 = assemblyName.FullName.ToString(); //WPF实例, Version=1.2.3.4, Culture=neutral, PublicKeyToken=null
string str_24 = assemblyName.Version.ToString(); //1.2.3.4
string str_25 = assemblyName.Version.Major.ToString(); //1.2.3.4
string str_26 = assemblyName.Version.Minor.ToString(); //1.2.3.4
string str_27 = assemblyName.Version.Build.ToString(); //1.2.3.4
string str_28 = assemblyName.Version.MajorRevision.ToString(); //1.2.3.4
方式三 根据当前的程序集获取信息
System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
string name = assembly.GetName().Version.ToString();
方式四、获取程序集元数据, 个人推荐使用如下
System.Reflection.AssemblyCopyrightAttribute copyright = (System.Reflection.AssemblyCopyrightAttribute)
System.Reflection.AssemblyCopyrightAttribute.GetCustomAttribute(System.Reflection.Assembly.GetExecutingAssembly(),typeof(System.Reflection.AssemblyCopyrightAttribute));
System.Reflection.AssemblyDescriptionAttribute description = (System.Reflection.AssemblyDescriptionAttribute)
System.Reflection.AssemblyDescriptionAttribute.GetCustomAttribute(System.Reflection.Assembly.GetExecutingAssembly(),typeof(System.Reflection.AssemblyDescriptionAttribute));
string str_30 = description.Description; // 示例描述
string str_31 = copyright.Copyright; // Copyright © 2018
string str_32 = System.Windows.Forms.Application.ProductVersion;// 5.6.7.8*/
WPF 获取程序路径的一些方法,根据程序路径获取程序集信息的更多相关文章
- 微信小程序使用wxParse,解决图片显示路径问题
我们经常用到发布文章,用的是UEditor百度富文本编辑器,方便排版,存储的也是html代码,这样小程序解析出来的也是排版的样式,但是使用wxParse解析html的时候,因为存储的是图片的相对路径, ...
- PHP中获取星期的几种方法
PHP中获取星期的几种方法 PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0 ...
- 使用反射创建Bean、Spring中是如何根据类名配置创建Bean实例、Java提供了Class类获取类别的字段和方法,包括构造方法
Java提供了Class类,可以通过编程方式获取类别的字段和方法,包括构造方法 获取Class类实例的方法: 类名.class 实例名.getClass() Class.forNam ...
- Hosts文件路径及修改方法
(转自:http://www.techolics.com/softdev/20111029_100.html) 什么是Hosts文件? 根据百度百科的定义,Hosts文件是一个系统文件,这是一个本地的 ...
- C#反射实例应用--------获取程序集信息和通过类名创建类实例
AppDomain.CurrentDomain.GetAssemblies();获取程序集,但是获取的只是已经加载的dll,引用的获取不到. System.Reflection.Assembly.Ge ...
- C#反射 获取程序集信息和通过类名创建类实例(转载)
C#反射获取程序集信息和通过类名创建类实例 . System.Reflection 命名空间:包含通过检查托管代码中程序集.模块.成员.参数和其他实体的元数据来检索其相关信息的类型. Assembly ...
- Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法
Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都 ...
- IOS中获取各种文件的路径介绍及方法
IOS中获取各种文件的目录路径的方法 技术交流新QQ群:414971585 iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. docum ...
- asp.net后台获取路径的各种方法归纳
asp.net后台获取路径的各种方法归纳 1.Request.CurrentExecutionFilePath 获取当前请求的虚拟路径,不同于 FilePath,差别在于如果请求已在服务器代 ...
随机推荐
- Android相机使用(系统相机、自定义相机、大图片处理)
本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显示出来,该例子也会涉及到Android加载大图片时候的处理(避免OOM),还有简要提一下有些人Surf ...
- BZOJ3175 Tjoi2013 攻击装置(二分图匹配)
传送门 Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照"日"字攻击其周围的 8个位置(x-1,y-2),(x-2,y ...
- [C++]项目中的代码注释规范(整理)
原文:http://blog.csdn.net/pleasecallmewhy/article/details/8658795 1 源文件头部注释 列出:版权.作者.编写日期和描述. 每行不要超过80 ...
- Excel表3级数据整理工具
前言 做专题经常会遇到做数据级联的需求,大部分需求都长一个模样.销售给你一个excel表,然后你做一个省市经销商的级联.不知道以前大家是怎么样做的,我之前是把excel复制到sublime中,然后使用 ...
- AIX之ASM存储扩容
ASM存储扩容操作其实很简单,无非就是向DiskGroup(简称DG)里添加物理磁盘,增加DG的存储空间.说来简单,其实操作过程中有很多小细节要注意,否则,带来的后果是灾难性的. ASM扩容操作步骤( ...
- ORACLE之ASM学习
ASM(Automatic Storage Management)是Oracle10g R2中为了简化Oracle数据库的管理而推出来的一项新功能,这是Oracle自己提供的卷管理器,主要用于替代操作 ...
- 转:DataSet、DataTable、DataRow、DataColumn区别及使用实例
DataSet 表示数据在内存中的缓存. 属性 Tables 获取包含在 DataSet 中的表的集合. ds.Tables["sjxx"] DataTable 表示内存中数据的 ...
- 自己动手写客户端UI库——创建第一个控件
在上一篇文章中我们主要讲了C#如何和JS通信, 这一篇文章中,我们将创建一个最基础的Button控件 WUI库中控件的继承机制 我们先解释最简单的继承机制,以后WUI库的继承机制会比这个复杂的多 ...
- spring mvc ajax 400解决
The request sent by the client was syntactically incorrect. ajax发起请求时报400错误.请求代码如下: var reportId=($( ...
- java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
这个错误错了几次,必须做个标记 解决方法非常的简单: 最新的19版本会在你的项目下建立一个依赖包 Android Dependencies,在eclipse中右键这个文件夹,在Build Path选项 ...