一、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*/

  

转载于:https://www.cnblogs.com/sntetwt/p/5401777.html

WPF 获取程序路径的一些方法,根据程序路径获取程序集信息相关推荐

  1. 流图(程序图)表示程序的控制流——McCabe方法度量程序空间复杂度

    McCabe方法 McCabe方法根据程序控制流的复杂程度定量度量程序的复杂程度,这样度量出的结果称为程序的环形复杂度. 为了突出表现程序的控制流,人们通常使用流图(也称程序图). 1.流图 所谓流图 ...

  2. python列表获取最后一个元素的方法_Python中如何获取 list/OrderedDict 的 第一个/最后一个 元素...

    本文最后更新于2016年5月14日,已超过 1 年没有更新,如果文章内容失效,还请反馈给我,谢谢! =Start= 缘由: 最近在工作中有接触到用Python的xmltodict模块进行XML的解析, ...

  3. bootstarp js设置列隐藏_bootstrap table getHiddenColumns获取隐藏的列的方法

    bootstrap table getHiddenColumns获取隐藏的列的方法 bootstrap table getHiddenColumns获取表格隐藏的列,即获取哪些列当前不可见的列,因为有 ...

  4. PHP中获取星期的几种方法

    PHP中获取星期的几种方法 PHP星期几获取代码: 1 date(l); 2 //data就可以获取英文的星期比如Sunday 3 date(w); 4 //这个可以获取数字星期比如123,注意0是星 ...

  5. Linux命令自动补齐,切换工作目录,路径的表示方法

    命令自动补齐,切换工作目录,路径的表示方法 命令自动补齐 1.命令自动补齐 2.路径自动补齐 3.选项自动补齐 切换工作目录 查看当前用户的工作家目录 切换工作目录 路径的表示方法 1.绝对路径 2. ...

  6. 【微信小程序】零基础学 | 小程序语法

    在前面的章节中讲过WXML用于描述页面的结构.WXS用于结合WXML构建出页面的结构.WXSS用于描述页面的样式,它们三者都有特定的语法.其中,WXSS与CSS相差不大,所以就不单独列出了.本章主要讲 ...

  7. 获取应用程序文件夹路径的最佳方法

    我看到有一些方法可以获取应用程序文件夹路径: Application.StartupPath System.IO.Path.GetDirectoryName( System.Reflection.As ...

  8. Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法

    Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都 ...

  9. qt 获取当前程序运行路径_Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法...

    Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都 ...

  10. Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏

    Winform获取应用程序的当前路径的方法集合,具体如下,值得收藏//获取当前进程的完整路径,包含文件名(进程名). string str = this.GetType().Assembly.Loca ...

最新文章

  1. Aliyun LOG Java Producer 快速入门
  2. java 静态内部类 弱引用_Java基础 强引用、弱引用、软引用、虚引用
  3. 服务注册与发现用mysql_yeasul: 轻量级服务注册与发现中心,具有健康检查功能。...
  4. linux下文件夹压缩解压.tar , .gz , .tar.gz , .bz2 , .tar.bz2 , .bz , .tar.bz , .zip , .rar
  5. C语言再学习——分支结构
  6. 理解Python的With语句
  7. Linux Kernel Lock types and their rules
  8. 可重入性和线程安全性
  9. Python数据可视化 Pyecharts 制作 Map3D 三维地图
  10. win10系统 pdf 文件缩略图及预览图无法显示问题之解决方法
  11. IDEA中部署Tomcat及原理
  12. GIS数据处理-OSGB转换3dTiles
  13. 数学建模——评价模型之层次分析法
  14. 花几分钟轻松搞定快速排序算法
  15. [4G5G专题-23]:架构-5G无线接入内部网元架构与空口协议功能切分
  16. 大鱼吃小鱼java程序设计
  17. BootStrap--CSS组件--按钮组(btn-group)
  18. 【软考软件评测师】第五章节 安全测试测试方法
  19. 极米Z7X对比当贝D5X区别 哪个值得买
  20. 快学Python:函数的使用

热门文章

  1. zeromq源码分析笔记之架构
  2. python和json转换_python和json之间转化
  3. 方法同时使用微服务调用文件上传方法以及调用另一微服务的方法时报错failed to parse multipart servlet Request
  4. 接口参数使用RequestBody和RequestParam注解的场景
  5. 记 笔记软件极力推荐------------->思源
  6. 【渝粤教育】国家开放大学2018年春季 7138-22T人际交流与沟通 参考试题
  7. [渝粤教育] 中国地质大学 材料力学 复习题
  8. 【渝粤教育】电大中专中药制剂学作业 题库
  9. Debugview调试视图
  10. MySQL Study之--MySQL schema_information数据库