Directory.GetCurrentDirectory和Application.StartupPath的区别

时间:2022-03-10 04:21:51

System.IO.Directory.GetCurrentDirectory()方法用于获得应用程序当前工作目录。
System.Windows.Forms.Application.StartupPath 获得应用程序的可执行文件的路径,不含文件名

StartupPath 可执行文件固定就不会变,可用于定位
GetCurrentDirectory 不一定是可执行文件所在目录,因启动的位置而变

如有两个程序 C:/A/a.exe 和 C:/B/b.exe
当在 a.exe 中启动 b.exe,System.Diagnostics.Process.Start(@"C:/B/b.exe")
这时,b.exe 中 Directory.GetCurrentDirectory()方法 返回值为“C:/A”,Application.StartupPath 值为“C:/B”
如果直接在 C:/B/ 中启动 b.exe,那么两个值就会一样,都为“C:/B”
这就是 Directory.GetCurrentDirectory 和 Application.StartupPath 的区别

两个意义是不一样的. 
Application.StartupPath是程序的启动目录,这个在程序运行以后,就不会改变了.

Directory.GetCurrentDirectory()是 "当前目录 ",是可以在程序运行时候改变的,用 
Directory.SetCurrentDirectory()就可以改变.

Directory.GetCurrentDirectory()的缺省值是和Application.StartupPath()一样的.