C# 实现在当前目录基础上找到上一层目录

 更新时间:2021年01月14日 10:32:46   作者:creay_king  
这篇文章主要介绍了C# 实现在当前目录基础上找到上一层目录,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

其实很简单也很无脑,但却很实用,就是使用拆字符串的方法:

/// <summary>
    /// 获得项目的根路径
    /// </summary>
    /// <returns></returns>
    public string GetProjectRootPath()
    {
      string rootPath = "";
      string BaseDirectoryPath = AppDomain.CurrentDomain.BaseDirectory; // F:\project\WPF\AstroATE-PDR\04. 程序\01. 源代码\AstroATE\AstroATE\bin\Debug
      // 向上回退三级,得到需要的目录
      rootPath = BaseDirectoryPath.Substring(0, BaseDirectoryPath.LastIndexOf("\\")); // 第一个\是转义符,所以要写两个
      rootPath = rootPath.Substring(0, rootPath.LastIndexOf(@"\"));  // 或者写成这种格式
      rootPath = rootPath.Substring(0, rootPath.LastIndexOf("\\")); // @"F:\project\WPF\AstroATE-PDR\04. 程序\01. 源代码\AstroATE\AstroATE
      return rootPath;
    }

调用该函数:

string str = GetProjectRootPath() + @"\data\帮助文档.pdf";  //找到需要找的文件

好了,这样就解决了。

补充:C# 如何获取可执行文件路径的上上级目录

第一种:

DirectoryInfo di = new DirectoryInfo(string.Format(@"{0}..\..\", Application.StartupPath)); 
di.FullName

..\有几个就是往回退几层

第二种:

DirectoryInfo info = new DirectoryInfo(Application.StartupPath); 
String path = info.Parent.Parent.FullName;

第三种:

string WantedPath = Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf(@"\"));

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • C#形状原点变换的方法

    C#形状原点变换的方法

    这篇文章主要介绍了C#形状原点变换的方法,涉及C#图形绘制中原点变换的实现技巧,需要的朋友可以参考下
    2015-06-06
  • C# MeasureString测量字符串函数的使用方法

    C# MeasureString测量字符串函数的使用方法

    这篇文章主要介绍了C# MeasureString测量字符串函数的使用方法,需要的朋友可以参考下
    2014-10-10
  • c#文件的I/O基本操作

    c#文件的I/O基本操作

    System.IO命名空间包含允许在数据流和文件上进行同步,异步及写入的类型,下面是关于c#文件的I/O基本操作讲解,需要的朋友可以参考下
    2014-03-03
  • C# ManualResetEvent用法详解

    C# ManualResetEvent用法详解

    这篇文章主要介绍了C# ManualResetEvent用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • C#随机设置900-1100毫秒延迟的方法

    C#随机设置900-1100毫秒延迟的方法

    这篇文章主要介绍了C#随机设置900-1100毫秒延迟的方法,涉及C#中Thread.Sleep方法的使用技巧,需要的朋友可以参考下
    2015-04-04
  • C#基于Socket实现简单聊天室功能

    C#基于Socket实现简单聊天室功能

    这篇文章主要为大家详细介绍了C#基于Socket实现简单聊天室功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • Unity 按钮事件封装操作(EventTriggerListener)

    Unity 按钮事件封装操作(EventTriggerListener)

    这篇文章主要介绍了Unity 按钮事件封装操作(EventTriggerListener),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • C#实现快速查询文件的方法

    C#实现快速查询文件的方法

    这篇文章介绍了C#实现快速查询文件的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • C# 和 Python 的 hash_md5加密方法

    C# 和 Python 的 hash_md5加密方法

    这篇文章主要介绍了C# 和 Python 的 hash_md5加密方法,文章围绕着C# 和 Python 的 hash_md5加密的相关资料展开文章的详细呢偶然,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • 简单谈谈C#中深拷贝、浅拷贝

    简单谈谈C#中深拷贝、浅拷贝

    深拷贝和浅拷贝都是对对象进行的拷贝复制。而他们的不同就在于:一个对象中可能会有值类型的字段,也可能会有引用类型的字段。浅拷贝直接拷贝值、引用类型的指针。而深拷贝则是重新构造字段指针所指向的对象,并没有拷贝该字段的指针,或是与该字段指针指向同一块内存
    2015-06-06

最新评论