C#获取文件当前路径

来源:互联网 发布:2017华为网络大赛赛题 编辑:程序博客网 时间:2024/05/22 14:31

1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

-获取模块的完整路径。

2.System.Environment.CurrentDirectory

-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。

3.System.IO.Directory.GetCurrentDirectory()

-获取应用程序的当前工作目录。

4.System.AppDomain.CurrentDomain.BaseDirectory

-获取程序的基目录。

5.System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

-获取和设置包括该应用程序的目录的名称。

6. System.Windows.Forms.Application.StartupPath

-获取启动了应用程序的可执行文件的路径。

7.System.Windows.Forms.Application.ExecutablePath

-获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。

此时着重说一下2和6,即System.Environment.CurrentDirectory和System.Windows.Forms.Application.StartupPath。此时关系到程序开机自启加载文件的问题。System.Environment.CurrentDirectory的含义是获取或设置当前工作路径,而Application.StartupPath是获取程序启动路径。在开机自启中,System.Environment.CurrentDirectory获取到的路径是C:\window\system32也就是说这个程序的工作路径是C:\window\system32,即开机自启的时候程序是在这个路径下启动的。Application.StartupPath获取到的就是程序所在的路径。有网友是这样分析的:

先说System.Environment.CurrentDirectory:比如说你程序放在桌面上启动,但是中间你用了一个OpenFileDialog打开了E盘名为abc的文件夹下的某一个文件,那么CurrentDirectory就变成E:\abc了,所以如果你想再获取程序启动文件夹的某一个文件就没用了;

但是Application.StartupPath就不会这样了,无论你中间打开了哪个盘的文件,启动路径都是在桌面那里,一直不会变。

也就是说System.Environment.CurrentDirectory这个路径是会改变(“设置”)的(印证了System.Environment.CurrentDirectory的含义是获取或设置当前工作路径)。

暂时先总结这么多,如果后续发现其他使用再添加。


0 0
原创粉丝点击