您的位置:首页 > 编程语言 > C#

C#获取路径方法及代码

2010-04-30 17:02 288 查看
string str1
=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。

string
str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

//备注按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C://”)。如果该进程在子目录中
启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C://mySubDirectory”)。

string str3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。

string
str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。

string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

string
str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该
应用程序的目录的名称。

//获取当前进程的完整路径,包含文件名(进程名)。

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文件所在的目录)

string str1
=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。

string
str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。

//备注
按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:/”)。如果该进程在子目录中启动,则此
属性的值为不带尾部反斜杠的驱动器和子目录路径(如“C:/mySubDirectory”)。

string str3=Directory.GetCurrentDirectory();//获取应用程序的当前工作目录。

string
str4=AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。

string str5=Application.StartupPath;//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str6=Application.ExecutablePath;//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。

string
str7=AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该
应用程序的目录的名称。

1、判定一个给定的路径是否有效,合法

通过Path.GetInvalidPathChars或Path.GetInvalidFileNameChars方法获得非法的路径/文件名字符,可
以根据它来判断路径中是否包含非法字符;

2、如何确定一个路径字符串是表示目录还是文件

使用Directory.Exists或File.Exist方法,如果前者为真,则路径表示目录;如果后者为真,则路径表示文件

上面的方法有个缺点就是不能处理那些不存在的文件或目录。这时可以考虑使用Path.GetFileName方法获得其包含的文件名,如果一个路径不为
空,而文件名为空那么它表示目录,否则表示文件;

3、获得路径的某个特定部分

Path.GetDirectoryName :返回指定路径字符串的目录信息。

Path.GetExtension :返回指定的路径字符串的扩展名。

Path.GetFileName :返回指定路径字符串的文件名和扩展名。

Path.GetFileNameWithoutExtension :返回不具有扩展名的路径字符串的文件名。

Path.GetPathRoot :获取指定路径的根目录信息。

4、准确地合并两个路径而不用去担心那个烦人的“/”字符

使用Path.Combine方法,它会帮你处理烦人的“/”。

5、获得系统目录的路径

Environment.SystemDirectory属性:获取系统目录的完全限定路径

Environment.GetFolderPath方法:该方法接受的参数类型为Environment.SpecialFolder枚举,通过这个方
法可以获得大量系统 文件夹的路径,如我的电脑,桌面,系统目录等

Path.GetTempPath方法:返回当前系统的临时文件夹的路径

6、判断一个路径是绝对路径还是相对路径

使用Path.IsPathRooted方法

7、读取或设置当前目录

使用Directory类的GetCurrentDirectory和SetCurrentDirectory方法

8、使用相对路径

设置当前目录后(见上个问题),就可以使用相对路径了。对于一个相对路径,我们可以使用Path.GetFullPath方法获得它的完
全限定路径(绝对路径)。

注意:如果打算使用相对路径,建议你将工作目录设置为各个交互文件的共同起点,否则可能会引入一些不易发现的安全隐患,被恶意用户利用来访问系统文件。

9、文件夹浏览对话框(FolderBrowserDialog类)

主要属性:
Description:树视图控件上显示的说明文本,如上图中的“选择目录--练习”;RootFolder:获取或设置从其开始浏览的根文件夹,如上
图中设置的我的电脑(默认为桌面);SelectedPath:获取或设置用户选定的路径,如果设置了该属性,打开对话框时会定位到指定路径,默认为根文
件夹,关闭对话框时根据该属性获取用户用户选定的路径;
ShowNewFolderButton:获取或设置是否显示新建对话框按钮;

主要方法:
ShowDialog:打开该对话框,返回值为DialogResult类型值,如果为DialogResult.OK,则可以由
SelectedPath属性获取用户选定的路径;

Assembly asm =
Assembly.GetExecutingAssembly();

string path = asm.Location.Remove(asm.Location.LastIndexOf("//")) +
"//";

System.Diagnostics.Process.Start(path + "SerialTest.exe");
//文件的安装路径和文件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: