C#环境信息获取
来源 : http://wanxiujin.blog.163.com/blog/static/300460432009322111659409/
环境路径
1 获取当前工作目录的完全限定路径 System.Environment.CurrentDirectory
2 从程序集加载指定的清单资源
Stream xmls = this.GetType().Assembly.GetManifestResourceStream("ATBS.DevelopmentPlatform.Templates.Templates." + TemplateName);
string content = string.Empty;
using (StreamReader writer = new StreamReader(xmls))
{
content = writer.ReadToEnd();
}
3 // 获取当前运行的路径
//appBasePath = AppDomain.CurrentDomain.BaseDirectory;
appBasePath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) + @"\";
4 配置文件的处理System.Configuration.ConfigurationManager.AppSettings
C#获取程序路径的方法中需要注意的地方
获取运行程序路径的方法主要有以下7种:
· System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
他获取的是Module的文件名,如果在VS2008的调试环境中,获取的是 [程序名].vshost.exe的完整文件名。
· System.Environment.CurrentDirectory
System.IO.Directory.GetCurrentDirectory()
这两个方法获得的路径是一样的,获得的是当前路径,这个路径不一定是程序所在的路径。任何会改变当前路径的方法都会改变它,例如:OpenFileDialog每换一次目录就会改变它。因此,用这2个方法获取程序路径并不可靠。
· System.AppDomain.CurrentDomain.BaseDirectory
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
这两个方法是可靠的获取程序路径的方法。返回的路径最末以"\"结尾。可以方便的在后面加入任何Path。当然就算没有也可以用Path.Combine来合并路径以获得想要的路径。
· System.Windows.Forms.Application.StartupPath
这个方法也是可靠的获取程序路径的方法。不过返回的路径最末并没有"\"结尾。另外因为是Forms命名空间的。因此如果使用WPF还是不用的好。
· System.Windows.Forms.Application.ExecutablePath
这个方法获取的是执行程序的完整文件名。是最可靠的方式,只需要去掉程序文件名就可以获得路径。
获取程序的路径:
using System.Reflection;
Assembly.GetEntryAssembly().Location;
看看这个行不行
【zswang】:
简单的方法是这样
Text = typeof(Class1).Module.FullyQualifiedName;
【xiaoyuzi】:
string strDllFile = System.Reflection.Assembly.GetExecutingAssembly().Location;
FileInfo fi = new FileInfo(strDllFile);
return fi.Directory.FullName;
Environment.CurrentDirectory 属性值始终是指当前应用程序文件所在的目录,直到被 FileNotFoundException 异常所惊醒。在 MSDN 中,CurrentDirectory 属性的描述为:获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
通过调试发现,FileOpenDialog 会改变该当前目录的值。当用户通过文件打开对话框选取文件后,当前目录的值将变成用户所选择文件所在的目录。因此如果依赖该属性来定位某个固定的文件的位置,那么是要被 FileNotFoundException 之类的异常打扰D。如果需要始终定位到当前应用程序所在的位置,可以用 System.Windows.Forms.Application.StartupPath 来获取,当前也可以用 System.Reflection.Assembly.GetEntryAssembly().Location 来获取当前入口/主线程的所在集合文件的路径(包含文件名),如果只需要目录部分的字符串则可使用 System.IO.Path.GetDirectoryName() 来截取。
*这里提醒各位注意:Environment.CurrentDirectory在默认的情况下是会指向工程的bin\debug下,如果你想指向它的跟目录下或其他目录,你就必须自己设置,设置方法如下:
选择"解决方案资源管理器"
选择项目名称下的"Properties",右键打开
点"调试"项目
在启动选项中的工作目录中设置你需要的目录!
设置完毕!
1 C#获取当前路径的方法集合
2
3 //获取当前进程的完整路径,包含文件名(进程名)。
4 string str = this.GetType().Assembly.Location;
5 result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)
6
7 //获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
8 string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
9 result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)
10
11 //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
12 string str = System.Environment.CurrentDirectory;
13 result: X:\xxx\xxx (.exe文件所在的目录)
14
15 //获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
16 string str = System.AppDomain.CurrentDomain.BaseDirectory;
17 result: X:\xxx\xxx\ (.exe文件所在的目录+"\")
18
19 //获取和设置包含该应用程序的目录的名称。
20 string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
21 result: X:\xxx\xxx\ (.exe文件所在的目录+"\")
22
23 //获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
24 string str = System.Windows.Forms.Application.StartupPath;
25 result: X:\xxx\xxx (.exe文件所在的目录)
26
27 //获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
28 string str = System.Windows.Forms.Application.ExecutablePath;
29 result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)
30
31 //获取应用程序的当前工作目录(不可靠)。
32 string str = System.IO.Directory.GetCurrentDirectory();
33 result: X:\xxx\xxx (.exe文件所在的目录)
分享到:
相关推荐
在C#编程中,获取环境信息是开发过程中常见的需求,特别是在处理文件路径、配置文件以及资源访问时。本文将详细讲解如何在C#中获取不同的环境信息。 首先,要获取当前工作目录,可以使用`System.Environment....
在C#编程环境中,获取显卡(GPU)信息通常涉及到操作系统接口调用和硬件查询。以下是一些关于如何实现这一目标的关键知识点: 1. **硬件信息API**:C#本身并不直接提供获取硬件信息的内置功能,但可以利用Windows ...
在C#编程环境中,获取网络接口(通常称为“网卡”)信息是一项常见的任务,尤其在处理网络配置、诊断或监控应用中。本篇将详细解释如何使用C#来获取和操作网络接口的相关信息,包括首选DNS和备用DNS服务器设置。 ...
在本文中,我们将深入探讨如何使用C#编程语言在Windows Forms(Winform)环境中获取U盘,即移动USB产品的详细信息。标题中的“C# 获得U盘的产品信息”是指利用C#语言编写程序来读取U盘的硬件属性,如容量、制造商和...
这个名为"C#网卡信息获取器"的程序就是一个实例,展示了如何在C#环境下实现这一功能。 首先,我们需要了解C#中的System.Net.NetworkInformation命名空间。这个命名空间提供了各种类,用于获取网络连接和网络接口的...
C#作为.NET框架的主要编程语言,提供了丰富的类库来与Active Directory(AD)进行交互,从而获取和操作域用户、用户组以及组织单元(OU)等信息。本篇文章将详细探讨如何使用C#来实现这一目标。 首先,我们需要引入...
### 如何用C#获取当前计算机信息 在开发过程中,我们常常需要获取当前计算机的一些基本信息,比如CPU ID、MAC地址、IP地址等。这些信息在系统监控、安全验证等方面非常有用。本文将详细介绍如何利用C#语言来实现这...
在C#编程环境中,获取安装在Windows操作系统上的软件信息是一项常见的任务,这通常涉及到系统管理、软件审计或者软件依赖分析等场景。C#提供了多种方式来实现这一目标,包括使用.NET Framework的内置类库和调用...
当你需要获取系统中的环境变量时,这通常涉及到系统配置信息,如管理员权限、当前登录用户信息、系统路径、操作系统详细参数以及处理器相关数据。这些信息对开发需要与系统交互的应用程序至关重要,比如设置安装路径...
在C#编程环境中,处理视频文件,包括获取视频文件信息和进行视频转码,是多媒体应用开发中的常见任务。本文将详细介绍如何利用C#来实现这些功能。 首先,要获取视频文件信息,我们需要借助第三方库或者.NET ...
在C#编程中,环境变量是一个非常重要的概念,它们提供了在不同进程间共享信息的方式,尤其是在配置路径或者系统设置时。Visual Studio 2008是C#开发的一个经典版本,我们可以通过它来创建和管理工程。在这个场景中,...
最后,“C#版本的源码,可运行”,意味着这个程序不仅提供了源代码,而且已经过测试,可以直接在C#环境下编译和执行。 标签“C# 获取邮政编码”进一步明确了这个项目的核心功能,即通过C#代码获取特定地区的邮政...
在企业微信的场景下,我们可以利用C#来实现与微信企业号接口的交互,获取并管理企业内的用户信息。 首先,要获取企业微信的用户身份,我们需要在微信企业号的开发者中心注册一个应用,并获取到AppID和AppSecret。这...
本项目聚焦于使用C#获取计算机的基本信息,包括IP地址、登录用户名、物理内存、MAC地址和CPU ID等核心硬件和网络信息。这些信息对于系统监控、故障排查和性能优化都是至关重要的。 首先,让我们详细了解每个知识点...
C#是一种广泛使用的编程语言,尤其在开发Windows应用程序时,获取系统信息是常见的需求。本文将详细介绍四种在C#中获取系统信息的方法。 首先,SystemInformation类提供了许多静态方法和属性,可以获取Windows操作...
在C#编程中,获取图片、音乐和视频的详细信息是一项常见的任务,这对于多媒体应用的开发至关重要。本文将深入探讨如何使用C#有效地获取这些元数据,并解释如何确定音乐和视频的播放时间长度。 首先,让我们关注图片...
在本文中,我们将深入探讨如何使用C#编程语言在.NET 3.5框架下通过串行端口(SerialPort)获取设备的详细信息,包括设备描述、产品ID(PID)和供应商ID(VID)。首先,我们需要理解串口通信的基础知识,然后搭建VS...
环境变量是操作系统中存储配置信息的变量,它们影响程序的运行方式。有时,由于各种原因,如软件卸载不彻底或者手动编辑环境变量时出错,可能会留下无效的路径,导致系统出现问题或软件运行异常。针对这种情况,我们...
在C#编程中,获取计算机硬件信息是一项常见的需求,尤其是对于系统监控、性能测试或硬件管理软件来说。本文将深入探讨如何使用C#获取计算机的显卡信息,以实现标题中提到的功能。在这个过程中,我们将涉及到.NET ...
在C#编程环境中,获取系统信息是常见的任务,这包括硬件信息、操作系统信息、网络信息等。本篇文章将深入探讨如何使用C#来获取这些关键的系统信息。 首先,我们从基础开始,C#提供了丰富的类库来获取系统信息。其中...