2010-05-26 158 views
6

一个相当简单的问题;如何找到我的exe被放置在本地目录的路径?如果我有一个.exe,并且在程序中我必须在exe文件所在的目录下创建一个txt文件!本地路径

[语言 - C#]

所以,如果这个exe是在C:/ Temp文件夹,并从那里开始的;我的txt应该创建在C:/ Temp

如果用户希望将exe移到D:/ Temp并从那里运行;我应该可以创建在D:/ Temp

我试过Directory.GetCurrentDirectory(),但它返回程序的执行目录!

回答

15

Assembly.GetExecutingAssembly().Location

+9

“Assembly”类是System.Reflection命名空间的一部分 - 对于那些将要查找的人...... – 2013-05-14 14:17:13

0

你可以试试这个:

this.GetType().Assembly.CodeBase 

,或者如果它是一个WinForms应用程序

Application.ExecutablePath 
6

试试这个

sPath = System.AppDomain.CurrentDomain.BaseDirectory; 

否则

sAppPath = Environment.CurrentDirectory; 
1

类似的信息在System.Appdomain.BaseDirectory中,程序集解析器用来探测程序集的基础目录。 在简单的情况下,这将指向原始组件的位置.exe

String path = AppDomain.CurrentDomain.BaseDirectory; 
0

您可以使用Application.StartupPath。它获取启动应用程序的可执行文件的路径,不包括可执行文件的名称。

+1

从VS 2010中的调试器运行时解析为“C:\ Program Files(x86)\ Microsoft Visual Studio 10.0 \ Common7 \ IDE“。 – 2011-01-28 13:39:42