zoukankan      html  css  js  c++  java
  • 【转】c#.net各种应用程序中获取文件路径的方法

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

    windows服务:Environment.CurrentDirectory

    windows服务安装成功后:

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

    2. ///

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

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

    {

    string key = @"SYSTEMCurrentControlSetServices" + 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(@"inDebug") > -1)
                        appSetting = dirName.Replace(@"inDebug", 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

  • 相关阅读:
    gThumb 3.1.2 发布,支持 WebP 图像
    航空例行天气预报解析 metaf2xml
    Baruwa 1.1.2 发布,邮件监控系统
    Bisect 1.3 发布,Caml 代码覆盖测试
    MoonScript 0.2.2 发布,基于 Lua 的脚本语言
    Varnish 入门
    快速增量备份程序 DeltaCopy
    恢复模糊的图像 SmartDeblur
    Cairo 1.12.8 发布,向量图形会图库
    iText 5.3.4 发布,Java 的 PDF 开发包
  • 原文地址:https://www.cnblogs.com/summer_adai/p/3570939.html
Copyright © 2011-2022 走看看