• 各种应用程序中获取文件路径的方法


    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    http://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=466

    用这种方法,web、控制台应用程序、Windows服务都适用

    控制台应用程序: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;
            }

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    http://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=466

  • 相关阅读:
    python+selenuim自动化测试(六)上传文件
    python+selenuim自动化测试(七)滚动条的操作
    python+selenuim自动化测试(三)鼠标的操作
    python+selenuim自动化测试(四)frame嵌套页面元素定位
    python+selenuim自动化测试(二)
    关于Django Specifying a namespace in include() without providing an app_name
    Xadmin 改造Django后台
    13-1 userprofile注册以及django的权限管理
    python-django开发(django2.0.9+xadmin0.6.1)填坑
    django xadmin 安装和使用
  • 原文地址:https://www.cnblogs.com/cnsend/p/12458272.html
Copyright © 2020-2023  润新知