当前位置:编程学习 > C#/ASP.NET >>

编程乐趣:向上取N层目录

编程中总少不了和目录打交道,尤其是当运行目录下有很多子目录,比如配置文件的目录,第三方dll的目录等,截取目录总会用到。前面也使用过“..”的方式来取上一级目录(http://blog.csdn.net/yysyangyangyangshan/article/details/7968259),不过总是有所限制。
于是写了一个向上取N级目录的方法,其实也无技术含量,无非是对字符串的截取,不过重在方便。
 
[csharp]  
public class ToolMethods  
    {  
        /// <summary>  
        /// 取向上几层的目录  
        /// </summary>  
        /// <param name="sourcePath"></param>  
        /// <param name="deep"></param>  
        /// <returns></returns>  
        public static string GetPathByParentDeep(string sourcePath, int deep)  
        {  
            if (string.IsNullOrEmpty(sourcePath) || deep < 0)  
            {  
                return sourcePath;  
            }  
  
            string tempPath = sourcePath.Replace(@"/", @"\");  
  
            if (tempPath.EndsWith(@"\"))  
            {  
                deep += 1;  
            }  
  
            for (int i = 0; i < deep; i++)  
            {  
                if (!tempPath.Contains(@"\"))  
                {  
                    break;  
                }  
  
                tempPath = tempPath.Substring(0, tempPath.LastIndexOf(@"\"));  
            }  
  
            return tempPath;  
        }  
    }  
 
 
 
测试
 
[csharp]  
class Program  
  {  
      static void Main(string[] args)  
      {  
          string startPath = Environment.CurrentDirectory;  
  
          Console.WriteLine(@"当前运行目录:" + startPath);  
  
          string path1 = ToolMethods.GetPathByParentDeep(startPath, 1);  
  
          Console.WriteLine(@"当前运行目录向上取一层:" + path1);  
  
          string path3 = ToolMethods.GetPathByParentDeep(startPath, 3);  
  
          Console.WriteLine(@"当前运行目录向上取三层:" + path3);  
  
          Console.ReadLine();  
      }  
  }  
 
 
补充:软件开发 , C# ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,