在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1、取得控制台应用程序的根目录方法 方法1、Environment.CurrentDirectory 取得或设置当前工作目录的完整限定路径 2、取得Web应用程序的根目录方法 方法1、HttpRuntime.AppDomainAppPath.ToString();//获取承载在当前应用程序域中的应用程序的应用程序目录的物理驱动器路径。用于App_Data中获取 3、取得WinForm应用程序的根目录方法 1、Environment.CurrentDirectory.ToString();//获取或设置当前工作目录的完全限定路径 其中:以下两个方法可以获取执行文件名称
System.IO.Directory.GetCurrentDirectory() //使用静态类 Directory 下的 GetCurrentDirectory 方法获取当前程序的路径 System.Reflection.Assembly.GetCallingAssembly().Location //获取调用该方法的方法所在的程序集,并获取该程序集文件路径(由该文件路径可以得到程序集所在的目录) System.Reflection.Assembly.GetEntryAssembly().Location //获取包含该应用程序入口点的程序集(可执行文件),并获取该程序集文件的路径(由该文件路径可以得到程序集所在的目录) System.Reflection.Assembly.GetExecutingAssembly().Location //获取执行该方法的程序集,并获取该程序集的文件路径(由该文件路径可以得到程序集所在的目录) System.Windows.Forms.Application.StartupPath //获取启动应用程序的可执行文件所在的目录 System.Windows.Forms.Application.ExecutablePath //获取启动应用程序的可执行文件的路径(由该文件路径可以得到应用程序所在的目录) 新建一个解决方案,添加一个类库项目,然后再添加一个控制台项目和 Web 项目。项目结构如图: 首先,在类库项目里添加一个类 ProjectPath。代码如下: namespace Common { public class ProjectPath { public static Dictionary<string, string> GetCurrentPaths() { Dictionary<string, string> paths = new Dictionary<string, string>(); paths.Add("System.AppDomain.CurrentDomain.BaseDirectory", System.AppDomain.CurrentDomain.BaseDirectory); paths.Add("System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase", System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase); paths.Add("System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName", System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName); paths.Add("System.Environment.CurrentDirectory", System.Environment.CurrentDirectory); paths.Add("System.IO.Directory.GetCurrentDirectory()", System.IO.Directory.GetCurrentDirectory()); paths.Add("System.Reflection.Assembly.GetCallingAssembly().Location", System.Reflection.Assembly.GetCallingAssembly().Location); try {/* System.Reflection.Assembly.GetEntryAssembly() 方法被 Web 应用程序调用时返回值是 null, 访问其 Location 属性将产生异常 */ paths.Add("System.Reflection.Assembly.GetEntryAssembly().Location", System.Reflection.Assembly.GetEntryAssembly().Location); } catch { } paths.Add("System.Reflection.Assembly.GetExecutingAssembly().Location", System.Reflection.Assembly.GetExecutingAssembly().Location); paths.Add("System.Windows.Forms.Application.StartupPath", System.Windows.Forms.Application.StartupPath); paths.Add("System.Windows.Forms.Application.ExecutablePath", System.Windows.Forms.Application.ExecutablePath); //Web 项目特有方式,必需在 HTTP 上下文中才能访问 Server 对象 //paths.Add("Server.MapPath(\"~\")", Server.MapPath("~")); return paths; } } } 在控制台项目里测试,代码如下: class Program { static void Main(string[] args) { Dictionary<string, string> paths = ProjectPath.GetCurrentPaths(); foreach (string key in paths.Keys) { Console.WriteLine(key); Console.WriteLine(paths[key]); Console.WriteLine(); } Console.Read(); } }
控制台程序怎么得到文件路径
//Console.ForegroundColor = ConsoleColor.Green; 设置cmd窗口字体颜色
参考:http://www.cnblogs.com/zhhh/archive/2012/06/30/2571222.html |
请发表评论