关闭

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

标签: netc#
73人阅读 评论(0) 收藏 举报
分类:

控制台应用程序: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;
    }
0
0
查看评论

c#如何取自身应用程序文件名和路径?

//   应用程序的路径,不带文件名     Application.StartupPath();     //   产品名称 &...
  • 21aspnet
  • 21aspnet
  • 2007-03-20 22:45
  • 4885

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

参考:http://blog.csdn.net/zfanlong1314/article/details/7071864 控制台应用程序:Environment.CurrentDirectory、Directory.GetCurrentDirectory() windows服务:Environm...
  • cafuc229
  • cafuc229
  • 2012-06-15 17:24
  • 9086

C#.net 获取文件路径方法(Winform)

string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名。 string str2=Environment.CurrentDirectory;//获取和设置当前目录的完全限定路径。
  • sxycgxj
  • sxycgxj
  • 2011-08-05 10:19
  • 1028

C#.net Winform获取文件路径

    C# 获取路径string str1 =Process.GetCurrentProcess().MainModule.FileName;//获得当前执行的exe的文件名。string str2=Environment.CurrentDirectory;...
  • sminhrosunny
  • sminhrosunny
  • 2011-06-24 08:34
  • 903

java中各种文件路径获取方法汇总

1、Struts2的Action中获取站内文件存放路径: ServletActionContext.getServletContext().getRealPath("/") 输出:F:\tomcat\webapps\jasperreport\ 2、在java类中获取相对当前...
  • jammiwang19870815
  • jammiwang19870815
  • 2013-06-28 14:49
  • 2591

解析Android中应用程序文件存储用得到的一些文件路径

Android开发中常常使用到的一些文件路径的获取以及解释
  • afei__
  • afei__
  • 2016-06-07 21:23
  • 4539

C#.NET 获取各种日期时间

DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一 DateTime endW...
  • H_King_H
  • H_King_H
  • 2018-02-05 12:24
  • 33

C#在控制台获取应用程序的路径

C#在控制台获取应用程序的路径 1.使用反射来获取执行应用程序的路径; 2.将该路径传递给System.IO.Path.GetDirctoryName() 具体代码:           ...
  • cz703211
  • cz703211
  • 2015-11-17 20:57
  • 507

强大的c#.net应用程序winform框架类库-WeifenLuo.WinFormsUI.Docking.dll

1.说明 weiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠、拖拽等功能。WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为X...
  • zhouyunyu22
  • zhouyunyu22
  • 2015-08-27 15:36
  • 510

IOS 各种文件路径获取

1、获取应用程序中包含的资源文件绝对路径 需求:项目中有些数据,使用的时候需要使用绝对路径去读取,所以需要获取文件的绝对路径 NSBundle *bundle = [ NSBundle mainBundle ]; NSString *filePath = [ bundle pathForR...
  • hslinux
  • hslinux
  • 2013-06-08 11:37
  • 508
    个人资料
    • 访问:342次
    • 积分:23
    • 等级:
    • 排名:千里之外
    • 原创:1篇
    • 转载:3篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档