C# 获取当前路径方法

来源:互联网 发布:手机建模软件中文 编辑:程序博客网 时间:2024/06/05 14:51
//获取包含清单的已加载文件的路径或 UNC 位置。        public static string sApplicationPath = Assembly.GetExecutingAssembly ( ).Location;        //result: X:\xxx\xxx\xxx.dll (.dll文件所在的目录+.dll文件名)         //获取当前进程的完整路径,包含文件名(进程名)。        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 stmp = Assembly.GetExecutingAssembly ( ).Location;                stmp = stmp.Substring ( 0 , stmp.LastIndexOf ( '\\' ) );//删除文件名                if ( pathType == 1 )                    return stmp + @"\inputLog.xml";                else if ( pathType == 2 )                    return stmp + @"\MiddleDB.xml";                else                    return stmp + @"\AppNo.xml"; using System.IO;        string path = "d:asdfasdf.bmp";        string fileName = Path.GetFileName(path); //文件名        string ext = Path.GetExtension(path); //扩展名 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属性获取用户选定的路径;=====================================================================1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。2.System.Environment.CurrentDirectory-获取和设置当前目录(该进程从中启动的目录)的完全限定目录。3.System.IO.Directory.GetCurrentDirectory()-获取应用程序的当前工作目录。这个不一定是程序从中启动的目录,有可能程序放在C:\xxx里,这个函数有可能返回C:\Documents and Settings\ZYB\,或者C:\Program Files\Adobe\,有时不一定返回什么。4.System.AppDomain.CurrentDomain.BaseDirectory-获取程序的基目录。5.System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase-获取和设置包括该应用程序的目录的名称。6. System.Windows.Forms.Application.StartupPath-获取启动了应用程序的可执行文件的路径。效果和2、5一样。只是5返回的字符串后面多了一个"\"而已7.System.Windows.Forms.Application.ExecutablePath-获取启动了应用程序的可执行文件的路径及文件名,效果和1一样。对于Windows程序 和Web 应用程序来说,他们运行的路径是不一样的,所以关键是判断当前运行的程序是哪种程序.于是我们可以使用如下的代码string path = "";if (System.Environment.CurrentDirectory ==AppDomain.CurrentDomain.BaseDirectory)//Windows应用程序则相等...{path = AppDomain.CurrentDomain.BaseDirectory;}else...{path = AppDomain.CurrentDomain.BaseDirectory + "Bin\";}这样如果我们写了一个类库,类库中用到了Assembly.LoadFrom,由于是通用类库,所以可能用到Windows程序中也可能用到Web中,那么用上面的代码就很方便了.  1、Server.MapPath  2、System.Windows.Forms.StartupPath  3、Type.Assembly.Location方法2可以应用于控制台应用程序,WinForm应用程序,Windows服务,方法1可以应用于Web应用程序,方法3都可以应用。但方法3是加载应用程序的路径。如果是Web应用程序,取得的路径是:C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files目录。所以Web项目还是使用Server.MapPath吧。否则建议使用方法2。如果自己新建类库。可以加入对System.Windows.Forms.StartupPath的引用后使用。

转载出自:http://www.cnblogs.com/JoshuaDreaming/archive/2010/11/25/1887996.html
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 初中学生数学差怎么办 孩子数学计算能力差怎么办 股票没有客户号怎么办 五岁宝宝鼻炎怎么办 孩子怕老师家长怎么办 孩子得了厌学症怎么办 幼儿不好好吃饭怎么办 孩子在学校胆小怎么办 孩子胆小没自信怎么办 特别倔强的学生怎么办 初中生注意力不集中怎么办 父母水平太低怎么办 父母不肯买电脑怎么办 与父母性格不合怎么办 父母和孩子吵架怎么办 如果有孩子离婚怎么办 离婚时成年孩子怎么办 父母离婚后孩子怎么办 父母吵架闹离婚怎么办 父母吵架后冷战怎么办 家里每天都吵架怎么办 夫妻因为钱吵架怎么办 离婚了很痛苦怎么办 身份证丢了怎么办离婚 和老婆离婚了怎么办 老婆跟前任联系怎么办 离异小孩上户口怎么办 离婚之后孩子户口怎么办 父母离婚孩子户口怎么办 夫妻离婚孩子户口怎么办 孩子有心理阴影怎么办 孩子心里有障碍怎么办 初中的孩子厌学怎么办 孩子抑郁了家长怎么办 大人得地图舌怎么办 孩子老挨欺负怎么办 工作做错了事情怎么办 父母和邻居吵架怎么办 父亲总是骂我怎么办 小孩依赖性太强怎么办 小孩子摔到头吐怎么办