获取应用程序根目录物理路径(Web and Windows)
这两个计划写一个小类库,需要在不同项目下任意调用。该类库需要对磁盘文件进行读写,所以就需要获取程序执行的磁盘路径,就简单的对获取磁盘路径的方法进行研究。
借助搜索引擎,我从网上搜罗来多种方法,都可以直接或间接的获取到应用程序执行的根目录。大概总结一下,一共有以下 11 种:
Server.MapPath("~") //使用 HTTP 上下文中的 Server 对象来获取Web站点的根目录 System.AppDomain.CurrentDomain.BaseDirectory //使用应用程序域对象获取当前线程的应用程序域的基准目录 System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase //使用应用程序域对象获取当前线程的应用程序域的配置信息中的应用程序目录 System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName //获取当前进程的主模块的文件名(全路径。由该文件路径可以得到程序集所在的目录) System.Environment.CurrentDirectory //获取应用程序环境的当前目录 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 //获取启动应用程序的可执行文件的路径(由该文件路径可以得到应用程序所在的目录)