.Net当前工作目录VS当前执行目录
定义: 当前工作目录——进行某项操作的目的目录,会随着OpenFileDialog、SaveFileDialog等对象所确定的目录而改变。
当前执行目录——该进程从中启动的目录,即文件自身所在目录。工作目录与执行目录可以不同,例如一个人住在北京,但他的工作地点不一定在北京,可能在天津。
方法:
1、获取和设置当前工作目录
a) System.IO.Directory.GetCurrentDirectory()
说明:获取应用程序的当前工作目录的完全限定路径。该方法是对Win32 API的GetCurrentDirectory函数的一个封装。
例如:'"C:\Documents and Settings\Administrator\My Documents"
b) System.Environment.CurrentDirectory
说明:获取或设置当前工作目录的完全限定路径。该属性内部调用的就是System.IO.Directory.GetCurrentDirectory()方法,二者是效果是等价的。
例如:'"C:\Documents and Settings\Administrator\My Documents"
c) System.IO.Path.GetFullPath(".")
说明:获取指定路径字符串的绝对路径。也可以用GetFullPath(".\"),GetFullPath(".\\")
例如:'"C:\Documents and Settings\Administrator\My Documents"
2、获取和设置当前执行目录
a) System.Windows.Forms.Application.StartupPath
说明:获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。常用于WinForm.
例如:'"D:\Projects\MyTest\bin"
b) System.AppDomain.CurrentDomain.BaseDirectory
说明:获取基目录,它由程序集冲突解决程序用来探测程序集。返回路径末尾带“\”
例如:'"D:\Projects\MyTest\bin\"
c) System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
说明:获取或设置包含该应用程序的目录的名称。返回路径末尾带“\”
例如:'"D:\Projects\MyTest\bin\"
3、获取和设置当前执行目录,包括可执行文件名
a) System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
说明:获取模块的完整路径。包括可执行文件的名称。
例如:'"D:\Projects\MyTest\bin\MyTest.exe"
b) System.Windows.Forms.Application.ExecutablePath
说明:获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
例如:'"D:\Projects\MyTest\bin\MyTest.exe"
c) System.Reflection.Assembly.GetExecutingAssembly().Location
说明:如果包含清单的已加载文件没有被影像复制,则获取该文件的基本代码格式的位置。
例如:'"D:\Projects\MyTest\bin\MyTest.exe"
d) System.Reflection.Assembly.GetExecutingAssembly().CodeBase
说明:获取最初指定的程序集的位置,例如,在AssemblyName对象中指定的位置。
例如:'"file:///D:/Projects/MyTest/bin/MyTest.exe"
欢迎添加我的公众号一起深入探讨技术手艺人的那些事!
如果您觉得本文的内容有趣就扫一下吧!捐赠互勉!