日期:2014-05-17  浏览次数:20742 次

C#作为外部进程被调用如何获得该C#进程而不是主进程的当前所在的目录
C#做的程序,作为外部进程,在程序里得到当前程序所在的目录,无论是“System.IO.Directory.GetCurrentDirectory()”还是“Application.StartupPath”都是得到主进程所在的当前目录,而不是得到C#程序所在的目录,我没有试其它的得到路径的方法,但我觉得结果可能都是一样的,有什么办法得到当前C#程序所在的目录,除了到注册表里读?

------解决方案--------------------
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

------解决方案--------------------
引用:
Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

正解
------解决方案--------------------
区别大了,如果外部程序能用被调用程序的路径作为启动路径,也不需要去读注册表,直接就能得到exe文件所在路径的,它不肯这么做,说明他懒,或者他就不懂这个启动路径的重要性,别指望更复杂的手段。而快捷方式和exe程序几乎是一样的访问,只不过在启动快捷方式的时候,自动会重定位启动位置。
------解决方案--------------------
Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)