c#.net各种应用程序中获取文件路径的方法

原创 2012年06月15日 17:24:38

参考:http://blog.csdn.net/zfanlong1314/article/details/7071864

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

C#获取Web和非Web程序的目录

http://blog.csdn.net/hougelou/article/details/8153930 几种方法如下: 非Web程序 1.AppDomain.Curr...
  • zunguitiancheng
  • zunguitiancheng
  • 2016年05月12日 10:29
  • 1060

web选择文件保存路径

  • 2013年04月22日 14:35
  • 8KB
  • 下载

cs转bs转换器 asp.net

  • 2009年03月31日 09:21
  • 859KB
  • 下载

.NET中获取指定文件夹下所有文件的全路径

获得指定文件夹下所有文件的全路径。 可以使用Directory下面的GetFiles方法。 1、获得文件夹所有文件路径。 2、获得指定文件路径。 3、获得指定多个类型文件路径。 第三个可...
  • fangcaorourou
  • fangcaorourou
  • 2016年04月20日 12:44
  • 275

C#(ASP.Net)获取当前路径的方法集合

//获取当前进程的完整路径,包含文件名(进程名)。  string str = this.GetType().Assembly.Location;  result: X:\xxx\xxx\xx...
  • HK_5788
  • HK_5788
  • 2015年10月05日 11:43
  • 4289

Asp.NET获取文件及其路径

【相对路径】Request.ApplicationPath/srcPath.GetDirectoryName(HttpContext.Current.Request.RawUrl )//src//Xi...
  • wonsoft
  • wonsoft
  • 2010年05月08日 20:21
  • 10108

.net MVC 获取文件路径相对路径

主要是为了上传文件路径,而HTML5在其他好多的浏览器中不能直接返回路径给你, 主要思路:把文件上传到服务器的指定文件夹中,然后拼接字符串拼接出它在服务器的路径,然后保存到数据库 Html代码:...
  • qq_34456964
  • qq_34456964
  • 2016年10月14日 14:37
  • 6361

总结C#获取当前路径的7种方法

原文出处:http://www.csharpwin.com/csharpspace/5025r2141.shtml C#获取当前路径的方法如下:     1. System.Diagnostics...
  • chelen_jak
  • chelen_jak
  • 2013年10月09日 08:52
  • 4370

.NET 中的绝对路径和相对路径

在做网页时老是遇到什么“相对路径”“绝对路径”,听起来好像很熟悉的样子,可真正操作起来就郁闷,今天就在这里做个小小的总结。 1、绝对路径     绝对路径是指文件在硬盘上真正存在的路径。例...
  • ghxbob
  • ghxbob
  • 2014年04月19日 11:40
  • 1713

.net绝对路径和相对路径的问题

Url:http://community.csdn.net/Expert/topic/5053/5053174.xml?temp=.972378.asax 的路径问题就如同 ASP 的 include...
  • ma_ta
  • ma_ta
  • 2006年10月26日 10:52
  • 6632
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c#.net各种应用程序中获取文件路径的方法
举报原因:
原因补充:

(最多只允许输入30个字)