2011-05-10 135 views
2

我想获得我的exe的当前工作目录。 Directory.GetCurrentDirectory()部署应用程序时不返回exe的工作目录。在发布模式下没有获取当前工作目录?

获取当前工作目录的方式是什么?

+2

我怀疑的功能被破坏。所以工作目录*不是你所期望的,无论出于何种原因。你如何部署应用程序,它是如何启动的,你期望的目录*当前目录是什么目录,以及它实际上是什么目录*? – 2011-05-10 10:19:40

回答

5


尝试AppDomain.CurrentDomain.BaseDirectory

+0

+1,不知道该财产存在。 – jgauffin 2011-05-10 10:23:58

+0

@jgauffin:我曾经使用Environment.CurrentDirectory来获取应用程序的工作目录,它似乎在开发环境中工作,但是当我创建一个窗口服务并且调用它时,'Environment.CurrentDirectory'返回了system32的路径因此,为什么开始使用我认为安全的AppDomain.CurrentDomain.BaseDirectory。 – wizzardz 2011-05-10 10:37:31

+0

'Environment.CurrentDirectory'是应用程序启动的目录。所有应用程序都可以从任何地方启动。 – jgauffin 2011-05-10 10:39:38

3

尝试:

var path = Environment.CurrentDirectory

或:

var path = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location); 
+1

第一个与OP正在尝试的内容相同,请参阅此处:http://stackoverflow.com/questions/1164756/what-is-the-difference-between-environment-currentdirectory-and-directory-getcurr – 2011-05-10 10:19:40

+0

@ Daniel Hilgarth:谢谢,我不知道。 – jgauffin 2011-05-10 10:22:08

相关问题