获取当前exe文件所在目录 C#
时间: 2023-07-01 20:09:32 浏览: 97
可以使用以下代码获取当前exe文件所在目录:
```csharp
string exePath = System.Reflection.Assembly.GetExecutingAssembly().Location;
string exeDir = System.IO.Path.GetDirectoryName(exePath);
```
第一行获取当前正在执行的程序集的路径,第二行使用 `Path.GetDirectoryName` 方法获取该路径的父目录。注意,这里得到的是绝对路径,而不是相对于当前工作目录的相对路径。
相关问题
C#获取当前调用本dll的exe文件的目录
可以使用`System.Reflection.Assembly.GetExecutingAssembly().Location`获取当前dll所在的路径,然后通过`System.IO.Path.GetDirectoryName`方法获取该路径所在的目录,即为调用该dll的exe文件的目录。下面是示例代码:
```csharp
using System;
using System.IO;
using System.Reflection;
public static class DllHelper
{
public static string GetExecutingExeDirectory()
{
string dllPath = Assembly.GetExecutingAssembly().Location;
string exePath = Path.GetDirectoryName(dllPath);
return exePath;
}
}
```
在调用该方法时,即可获取当前调用该dll的exe文件的目录。
c#获取当前文件被调用
你可以通过获取当前执行代码的堆栈信息来获取当前文件被调用的路径。具体方法如下:
```csharp
// 获取当前执行代码的堆栈信息
StackTrace stackTrace = new StackTrace();
// 获取堆栈信息中的第二个框架
StackFrame stackFrame = stackTrace.GetFrame(1);
// 获取调用当前方法的方法
MethodBase methodBase = stackFrame.GetMethod();
// 获取该方法所在的模块
Module module = methodBase.Module;
// 获取模块的完整路径
string filePath = module.FullyQualifiedName;
```
这样就可以获取到当前文件被调用的路径。需要注意的是,如果当前代码是在一个 DLL 中执行,那么获取到的路径就是该 DLL 的路径,而不是调用该 DLL 的程序的路径。