进程对象在.NET中表现为System.Diagnostics.Process类,通过调用Process.GetCurrentProcess().MainModule.FileName可获得当前执行的exe的文件名。但是这个方法得到的仅仅是文件名,如果程序运行期间没有切换工作目录,那么可以调用System.IO.Path的方法获取绝对路径。但是当前目录同样可以通过Environment.CurrentDirectory获得,而且很多软件在使用Open Dialog打开文件的时候,都会切换工作目录,而使得这一机制失效。
如果是在Windows Forms应用程序中,当前应用也表现为System.Windows.Forms.Application对象,通过其静态属性Application.ExecutablePath和Application.StartupPath,可以取得可执行文件的路径和启动路径。
但如果不是在Windows应用中呢,或者是在Library中呢,就算是Application对象的属性依然能获得,也需要在工程中添加System.Windows.Forms这个Assembly的引用,非常不方便。这个时候,可以通过Assembly的静态方法,GetCallingAssembly或者GetExecutingAssembly取得当前执行的Assembly,然后通过Assembly类的Location获取assembly的位置。
但是使用Assembly的时候,可能会遇到权限方面的问题,同时Assembly.GetCallingAssembly或者Assembly.GetExecutingAssembly有可能得到的不是.exe文件的位置。在GAC中的添加了强名的Assembly,运行时是可以不必与.exe在同一目录的。
.NET的进程启动时,会创建AppDomain,所有的Assembly都被Load到某一个AppDomain中,而AppDomain中提供了SetupInformation属性,可以获取AppDomain启动时的一些信息,因此,可以通过调用AppDomain.CurrentDomain.SetupInformation.ApplicationBase获取当前应用程序所在的路径。
在通过以上方法取到所需的目录后,可以调用System.IO.Path的方法获取文件名,目录名,绝对路径等。停止对路径字符串的分析,而改用System.IO.Path类吧。
开发.NET下应用程序时,了解Process/Application->AppDomain->Assembly的关系,对于实现正确的逻辑,是非常有帮助的。
分享到:
相关推荐
Java 获取当前路径 Java 获取当前路径是 Java 编程中一个常见的需求,下面我们将讨论如何在 Java 中获取当前路径。 方法一:使用 System.getProperty() 函数 使用 System.getProperty() 函数可以获取当前路径,该...
在VC++编程环境中,获取当前路径是开发过程中常见的需求,特别是在处理文件操作或者资源定位时。当前路径是指程序运行时的目录,它可以帮助我们定位到程序执行时的默认位置。下面我们将详细探讨如何在VC++中获取当前...
在VC++编程中,获取当前路径是常见的任务,特别是在处理文件和目录操作时。了解如何获取当前工作目录对于编写能够正确定位资源的程序至关重要。在本文中,我们将深入探讨如何在VC++环境中获取当前路径,并提供相关的...
在Labview编译成执行文档时,获取当前VI路径会和code源码调试不一样,导致源码调试ok,编译后执行就是有问题,初学者总会遇到这样的问题debug很久;此子vi可以解决这样的问题,使在源码调试和编译后获得统一的路径
在C#编程中,获取当前路径是常见的操作,主要用于定位程序执行时的文件或资源位置。这在处理本地文件系统交互、配置文件读取、日志记录等方面非常有用。本篇将详细介绍C#中获取不同类型的当前路径的方法,并提供相关...
1. **获取当前应用的相对路径与绝对路径** - **根目录所对应的绝对路径** - 方法:`request.getRequestURI()` - `request.getRequestURI()` 返回客户端请求的资源的相对路径(相对于当前上下文)。 - **文件的...
c++获取当前路径
在C++编程中,获取当前程序(EXE)所在的路径是一项基本但重要的技能,尤其是在处理文件操作、资源定位或动态库加载等场景时。本文将详细介绍如何使用C++获取当前程序所在路径的方法,并深入探讨其背后的原理及注意...
在VC/MFC编程环境中,获取当前路径是开发者经常需要处理的一个基本需求。当前路径可以指当前执行文件所在的目录,也可以是指当前工作目录。在给定的文件内容中,提到了几种在VC/MFC中获取当前路径的方法,下面将对...
### 获取当前路径的几种方法 #### 背景介绍 在开发ASP.NET应用程序时,有时候我们需要获取当前程序所在的物理路径,以便进行文件操作或者配置读取等任务。在ASP.NET页面中,我们可以轻松地通过`MapPath`或`Request`...
C# 获取文件路径是指在 C# 程序中获取当前执行文件的路径、当前工作目录的路径、基目录的路径等信息。在实际开发中,获取文件路径是非常重要的,例如在读取配置文件、加载资源文件、记录日志文件等场景中都需要获取...
#### (1) 获取当前页面的完整路径:`request.getRequestURI()` 此方法返回客户端请求的当前页面的路径,包括上下文路径和请求路径。例如,在`http://example.com/TEST/test.jsp`中调用此方法将返回`/TEST/test.jsp`...
在开发javascript插件的过程中,我们有时候需要获取当前JS文件的路径,用于自动加载一些图片、CSS等外部资源,但是javascript文件中并没有像PHP那样的__FILE__常量来供我们取得当前文件路径
如题使用bat(脚本实现这个功能)获取当前路径下所有文件夹和文件名,并换行输出至txt文件中。
#### System.getProperty() 获取当前路径 在Java中,`System.getProperty()` 方法是一个非常实用的方法,它可以从系统属性中获取指定键对应的值。当键为 `"user.dir"` 时,返回的是当前Java程序执行所在的目录路径...
VC 获取当前程序文件的路径、文件名以及路径+文件名 在 VC++ 中,获取当前程序文件的路径、文件名以及路径+文件名是一个非常常见的问题,本文将为大家介绍两种经典的解决方案。 方法 1:使用 ...
DLL工程获取DLL当前路径,获取DLL路径然后和配置文件拼接,读取配置文件
这两个方法都可以获取当前类的相对路径。 需要注意的是,在使用 `getResource` 方法时,相对路径一定要以 `/` 开头。否则,路径将会出错。 获取绝对路径 在 Java 项目中,获取绝对路径可以使用 `...
在C#编程中,获取当前路径是开发过程中常见的需求之一,尤其在处理文件读写、配置加载等场景下尤为重要。本文将详细介绍C#中获取当前路径的多种方法,包括但不限于获取程序所在目录、当前线程的工作目录、应用程序...
另一种获取当前路径下的所有文件 另一种获取当前路径下的所有文件 另一种获取当前路径下的所有文件