【问题标题】:Get folder next to parent folder in either Path.GetDirectory or Server.MapPath在 Path.GetDirectory 或 Server.MapPath 中获取父文件夹旁边的文件夹
【发布时间】:2017-03-30 05:50:34
【问题描述】:

考虑两种路径,一种在解决方案中,另一种在 IIS 中:

解决路径:

  • C:\Users\userid\Desktop\File\Solution\RootName\ Folder1 \Folder1a\the.aspx

IIS 路径

  • C:\inetpub\wwwroot\RootName\webApplication\ Folder1 \Folder1a\the.aspx

有没有办法使用DirectoryServer 或任何东西来在父目录之后获取第一个文件夹名称?

即在上面给出的,Folder1 是父文件夹之后的第一个文件夹。

我可以得到相反的结果,即文件路径中包含的文件夹名称(在本例中为 Folder1a),我可以对其进行迭代以获得答案:

Path.GetFileName(Path.GetDirectoryName(file));

但问题是,文件夹可以任意嵌套:(folder1a\folder1a1\folder1a1a...)

如何在给定文件路径的父目录之后获取第一个文件夹名称?

顺便说一句, 如果没有文件夹名称(例如,Folder1 不存在),则答案应输出“”(空)

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    使用.. 转到上一个目录,例如:

    C:\test\..\
    

    相当于:

    C:\
    

    使用Directory.GetDirectories 查找子目录。它有一个重载,您也可以在其中传递搜索模式:

    string[] GetDirectories(string path, string searchPattern)
    

    搜索模式 类型:System.String

    与路径中的子目录名称匹配的搜索字符串。 此参数可以包含有效文字和 通配符(见备注),但不支持正则 表达式。

    【讨论】:

    • 谢谢.. 但是我如何进入下一个目录?
    • 使用Directory.GetDirectories 并匹配您的文件夹名称。
    【解决方案2】:

    试试这个:

    string filename = string.Format("{0}{1}", System.AppDomain.CurrentDomain.BaseDirectory, @"Folder1\Folder1a\the.aspx");
    

    【讨论】:

      【解决方案3】:

      以下是我尝试过的有效方法。

      由于我只需要在单词之后输出第一页,因此我迭代了Path.GetDirectoryNamePath.GetFileName,直到可以匹配到根文件夹。

      例如:

                      baseFoldr = "";
                      var curFile = Path.GetDirectoryName(file);
                      string curName = Path.GetFileName(curFile);
      
                      while (curName.ToLower() != "RootName")
                      {
                              curFile = Path.GetDirectoryName(curFile);
                              baseFoldr = curName;
                              curName = Path.GetFileName(curFile);
      
                      }
      
                      return baseFoldr;
      

      不过,我仍然相信会有更好的答案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-03-19
        • 2011-06-20
        • 1970-01-01
        • 2017-01-27
        • 2014-02-26
        • 2012-05-20
        • 1970-01-01
        • 2018-05-28
        相关资源
        最近更新 更多