控制台应用程序:Environment.CurrentDirectory、Directory.GetCurrentDirectory()

windows服务:Environment.CurrentDirectory

windows服务安装成功后:

1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

2. ///

/// 获取服务应用程序的安装路径(或者当前安装目录)///

/// /// public static string GetWindowsServiceInstallPath(string ServiceName)

{

string key = @"SYSTEM\CurrentControlSet\Services\" + ServiceName;

string path = Registry.LocalMachine.OpenSubKey(key).GetValue("ImagePath").ToString();

//替换掉双引号

path = path.Replace("\"", string.Empty);

FileInfo fi = new FileInfo(path);

return fi.FullName;

//return fi.FullName.Directory.ToString();

}

//windows 服务中使用log4net

string assemblyFilePath = Assembly.GetExecutingAssembly().Location;

string assemblyDirPath = Path.GetDirectoryName(assemblyFilePath);

string configFilePath = assemblyDirPath + "//log4net.config";

DOMConfigurator.ConfigureAndWatch(new FileInfo(configFilePath));

/// <summary>
        /// 获取应用程序web.config中的文件配置路径,并返回物理路径
        /// 适用于web应用程序
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetFileFullpath(string key)
        {
            if (string.IsNullOrEmpty(key)) return string.Empty;

//获取应用程序的web.config中配置的路径
            string appSetting = System.Configuration.ConfigurationManager.AppSettings[key].ToString();
            //如果到的路径不是物理路径,则映射为物理路径
            if (!Path.IsPathRooted(appSetting)) appSetting = System.Web.HttpContext.Current.Server.MapPath(appSetting);

return appSetting;
        }

/// <summary>
        /// 获取应用程序.config中的文件配置路径,并返回物理路径
        /// 适用于windows服务、控制台等应用程序
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetAssemblyPath(string key)
        {
            if (string.IsNullOrEmpty(key)) return string.Empty;

//获取应用程序的web.config中配置的路径
            string appSetting = System.Configuration.ConfigurationManager.AppSettings[key].ToString();
            //如果到的路径不是物理路径,则映射为物理路径
            if (!Path.IsPathRooted(appSetting))
            {
                string assemblyPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
                string dirName = Path.GetDirectoryName(assemblyPath);
                if (dirName.IndexOf(@"\bin\Debug") > -1)
                    appSetting = dirName.Replace(@"\bin\Debug", appSetting.Substring(1).Replace(@"/", @"\"));
                else
                    appSetting = dirName + appSetting.Substring(1).Replace(@"/", @"\");
            }

return appSetting;
        }

/// <summary>
        /// 获取应用程序.config中的文件配置路径,并返回物理路径
        /// 适用于windows服务应用程序的成功安装之后
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        public static string GetInstallPath(string key)
        {
            if (string.IsNullOrEmpty(key)) return string.Empty;

//获取应用程序的web.config中配置的路径
            string appSetting = System.Configuration.ConfigurationManager.AppSettings[key].ToString();
            //如果到的路径不是物理路径,则映射为物理路径
            if (!Path.IsPathRooted(appSetting))
            {
                string processPath = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
                appSetting = processPath.Substring(0, processPath.LastIndexOf(@"\")) + appSetting.Substring(1).Replace(@"/", @"\");
            }

return appSetting;
        }

转载:http://blog.csdn.net/cafuc229/article/details/7667172

【转】c#.net各种应用程序中获取文件路径的方法的更多相关文章

  1. Android中获取文件路径的方法总结及对照

    最近在写文件存贮,Android中获取文件路径的方法比较多,所以自己也很混乱.找了好几篇博客,发现了以下的路径归纳,记录一下,以备不时之需 Environment.getDataDirectory() ...

  2. IOS中获取文件路径的方法

    iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library. (NSHomeDirectory ...

  3. Java中获取文件路径

    Java中获取文件路径 1.实例说明 (1)得到 ClassPath的绝对URI路径 Thread.currentThread().getContextClassLoader().getResourc ...

  4. web项目中获取各种路径的方法

    ~Apple   web项目中各种路径的获取 1.可以在servlet的init方法里 String path = getServletContext().getRealPath("/&qu ...

  5. SWIFT中获取配置文件路径的方法

    在项目中有时候要添加一些配置文件然后在程序中读取相应的配置信息,以下为本人整理的获取项目配置文件(.plist)路径的方法: 1.获取沙盒路径后再APPEND配置文件 func documentsDi ...

  6. Delphi的TService 服务路径获取 Dll中获取文件路径

    研究delphi服务的路径,试了好几个方法 ,都没取出来,最后发现,要采用取DLL路径的方法 //一.获取Dll自身路径 //1)方法一: Function GetDllPath(sDllName:s ...

  7. java项目中获取文件路径的几种方法

    // 第一种: 2 File f = new File(this.getClass().getResource("/").getPath()); // 结果: /Users/adm ...

  8. java中获取文件路径的几种方式

    http://xyzroundo.iteye.com/blog/1116159关于绝对路径和相对路径: 绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz es ...

  9. python中获取文件路径的几种方式

    # 如果执行文件为E:\aa\bb\aa.py 1.获取当前路径 current_path11 = os.path.abspath(__file__) current_path12 = os.path ...

随机推荐

  1. [转]string和stringstream用法总结

    转自:http://blog.csdn.net/xw20084898/article/details/21939811 作者:xw20084898 一.string string 是 C++ 提供的字 ...

  2. Asp.net MVC area

    妈的,今天去携程面试,技术面了三轮,竟然让我走了,没有然后了,你不要老子,干嘛还面那么多轮,害的老子一上午的时间没了,气死我了. 好了,总结下面试中的问题吧, 1.GC 2.设计模式 3.做过的项目的 ...

  3. 基于JQuery的前端form表单操作

    Jquery的前端表单操作:     jquery提供了良好的方法封装,在一些基本的操作的时候,能节省很多的麻烦,其中,在具体使用时,form表单的数据提交是最频繁也最常见的前后数据交换方式,所以在前 ...

  4. 网页正文提取,降噪的实现(readability/Document)

    安装: pip install readability-lxml 使用: # encoding:utf-8import html2textimport requestsimport refrom re ...

  5. Struts1 工作流程

    一个老项目的维护 , 需要学习一下 Struts1. struts1运行步骤 1.项目初始化:项目启动时加载 web.xml,struts1 的总控制器 ActionServlet 是一个 Servl ...

  6. 如何杀掉Monkey测试

    1.adb shell 2.ps | grep monkey 3.kill pid 然后可以看到手机进程中的monkey进程被杀死了,再执行ps | grep monkey,就会发现没有monkey进 ...

  7. CF271D_Good Substrings

    给一个原串,以及那些字符是坏的,现在问你可以从原串中取出多少个不同子串,使得其所含的坏字符的个数不超过一个定数. 这个题目网上有各种各样的解法.如hash,tire. 我说一下我的解法. 解法一:后缀 ...

  8. ZOJ3733_Skycity

    这...水题.可惜坑了无数发. 显然对于当前的半径的园,多边形的边数越多,周长越短,面积也就越小. 一开始我是用二分去做的,事实证明也是可以的,只是我坑了. 其实没必要去用二分哦,这样来考虑这问题. ...

  9. 子类使用父类的方法 或属性时候 里面的this 代表的是自己

  10. java追加写入txt文件

    整理了下网上的资料,数据追加写入txt文件有三种方式,见下面代码: 方法一: public void method1() { FileWriter fw = null; try { //如果文件存在, ...