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

标签: net c#
192人阅读 评论(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;
    }
查看评论

C# 中获取项目的相对路径

绝对路径:D://ora//YSQSXT_HY//HYQS_Client_DKH//DKHBOBIAO//大客户运费结算日报(一).cll相对路径:../../../../大客户运费结算日报(一).c...
  • xianshuang
  • xianshuang
  • 2008-08-07 08:57:00
  • 3826

c# 获取文件路径的几种方法

C# 截取带路径的文件名字,扩展名,等等 的几种方法 C#对磁盘IO操作的时候,经常会用到这些,路径,文件,文件名字,文件扩展名.     之前,经常用切割字符串来实现,     可是经常会弄错. 尤...
  • wxstar8
  • wxstar8
  • 2016-04-29 11:47:50
  • 2226

C# 相对路径指定详解(有用)

1、 根目录 .\\ 或者直接给出文件名称,是找根目录的路径。 如:path = "gs.mdb" 与 path = ".\\gs.mdb"是一个意思。 2、 根目录的上级目录, 在C#中是指定...
  • qq_35409640
  • qq_35409640
  • 2017-05-12 16:22:30
  • 1253

C#获取路径下所有文件以及子文件夹中文件

/// /// 获取路径下所有文件以及子文件夹中文件 /// /// 全路径根目录 /// 存放所有文件的全路径 /...
  • kwy15732621629
  • kwy15732621629
  • 2017-05-15 08:49:03
  • 7554

C# ,asp.net 获取当前,相对,绝对路径

一、C#获取当前路径的方法:1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-获取模块的完整路径。2. Sys...
  • hyunbar
  • hyunbar
  • 2017-11-02 11:00:32
  • 602

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

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

C# .Net读写文件 IO流 C# .Net对文件&文件夹操作

通常来讲,用C#程序读取一个文件需要以下5个基本步骤 1:创建文件流 2:创建阅读器或者写入器 3:执行读写操作 4:关闭阅读器或者写入器 5:关闭文件流 (注意事项: 使用文件流需要导入...
  • miniduhua
  • miniduhua
  • 2016-10-21 15:16:42
  • 4908

Asp.NET获取文件及其路径

【相对路径】Request.ApplicationPath/srcPath.GetDirectoryName(HttpContext.Current.Request.RawUrl )//src//Xi...
  • wonsoft
  • wonsoft
  • 2010-05-08 20:21:00
  • 10148

Winform选择目录路径与选择文件路径

using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawi...
  • zaocha321
  • zaocha321
  • 2016-09-13 18:24:22
  • 6930

C# winform中选择本地文件,并获取其路径

private void button1_Click(object sender, EventArgs e) { OpenFileDialog openFileDialog1 = new...
  • IT_ZB
  • IT_ZB
  • 2017-02-09 13:52:16
  • 2024
    个人资料
    等级:
    访问量: 1559
    积分: 122
    排名: 126万+
    文章存档
    最新评论