我怎样才能找到运行我的程序exe文件的目录?

时间:2013-08-05 00:40:56

标签: c# winforms

在我的项目\ debug目录中,我有程序exe文件,例如:

TEST.EXE

现在我将从c:\运行此test.exe 第二次,我将test.exe复制到d:\并从那里运行。

在我的代码中,我有这一行:

string programFilesX86 = System.Environment.GetFolderPath(System.Environment.SpecialFolder.ProgramFilesX86) + "\\Diagnostic Tool\\7z.dll";

相反,程序文件x86如何从运行exe文件的地方获取每个目录?

2 个答案:

答案 0 :(得分:1)

一种方式(确定.Net CE中的火灾方式)是

string path = Path.GetDirectoryName(
  Assembly.GetEntryAssembly().GetModules()[0].FullyQualifiedName);

string path = Path.GetDirectoryName(
  Assembly.GetEntryAssembly().Location);

这将阻止Shortcut设置应用程序CurrentDirectory或StartupPath,这在技术上可能与它的执行路径不同(例如ClickOne程序)。

答案 1 :(得分:0)

您可以通过执行以下操作来获取正在运行的目录:

Application.StartupPath

您可以阅读更多相关信息here

或者你可以试试Environment.CurrentDirectory,但由于捷径和其他获取文件的方式,这可能无法获得你想要的结果。

http://msdn.microsoft.com/en-us/library/system.environment.currentdirectory.aspx

你也可以这样做:

System.IO.Path.GetDirectoryName(Application.ExecutablePath);

或者

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);