winform相对路径和绝对路径 各种操作详解

归类于C# 参与评论

相对路径获取
string   path   =   System.IO.Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。
string   str1   =   Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称
string   str2   =   Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string   str3   =   Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

System.Reflection.Assembly   ass=   System.Reflection.Assembly.GetExecutingAssembly();//获取当前代码正从中运行的   Assembly
string   strConfigLoc=ass.Location;//如果包含清单的已加载文件没有被影像复制,则获取该文件的基本代码格式的位置
FileInfo   FileInfoObj=   new   FileInfo(strConfigLoc);
strConfigLoc=FileInfoObj.DirectoryName;
MessageBox.Show(strConfigLoc);

C# Winform中如何获取文件路径

获取文件名方法:

用System.IO.Path.GetFileName和System.IO.Path.GetFileNameWithoutExtension(无扩展名)的方法

获取文件路径方法:

//获取当前进程的完整路径,包含文件名(进程名)。
string str = this.GetType().Assembly.Location;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。
string str = System.Environment.CurrentDirectory;
result: X:\xxx\xxx (.exe文件所在的目录)

//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
string str = System.AppDomain.CurrentDomain.BaseDirectory;
result: X:\xxx\xxx\ (.exe文件所在的目录+”\”)

//获取和设置包含该应用程序的目录的名称。
string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
result: X:\xxx\xxx\ (.exe文件所在的目录+”\”)

//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
string str = System.Windows.Forms.Application.StartupPath;
result: X:\xxx\xxx (.exe文件所在的目录)

//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。
string str = System.Windows.Forms.Application.ExecutablePath;
result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)

//获取应用程序的当前工作目录(不可靠)。
string str = System.IO.Directory.GetCurrentDirectory();
result: X:\xxx\xxx (.exe文件所在的目录)

C# 获取路径中,文件名、目录、扩展名等

string path = “C:\\dir1\\dir2\\foo.txt”;
string str = “GetFullPath:” + Path.GetFullPath(path) + “\r\n”;
str += “GetDirectoryName:” + Path.GetDirectoryName(path) + “\r\n”;
str += “GetFileName:” + Path.GetFileName(path) + “\r\n”;
str += “GetFileNameWithoutExtension:” + Path.GetFileNameWithoutExtension(path) + “\r\n”;
str += “GetExtension:” + Path.GetExtension(path) + “\r\n”;
str += “GetPathRoot:” + Path.GetPathRoot(path) + “\r\n”;
MessageBox.Show(str);

结果:
GetFullPath:C:\dir1\dir2\foo.txt
GetDirectoryName:C:\dir1\dir2
GetFileName:foo.txt
GetFileNameWithoutExtension:foo
GetExtension:.txt
GetPathRoot:C:\

这里要说明 path 是如何C# 轻松获取路径中文件名、目录、扩展名等判断目录和文件名的:它把最后一个 \ 后面的内容当作是文件名。 // 内容来自js4j.com//

  • C:\dir1\dir2\foo.txt 文件名是 foo.txt,目录名是 C:\dir1\dir2。
  • C:\dir1\dir2\ 文件名是零长度字符串,目录名是 C:\dir1\dir2。
  • C:\dir1\dir2 文件名是 dir2,目录名是 C:\dir1。

顶部