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

编程中总少不了和目录打交道,尤其是当运行目录下有很多子目录,比如配置文件的目录,第三方dll的目录等,截取目录总会用到。前面也使用过“..”的方式来取上一级目录(http://blog.csdn.net/yysyangyangyangshan/article/details/7968259),不过总是有所限制。
于是写了一个向上取N级目录的方法,其实也无技术含量,无非是对字符串的截取,不过重在方便。

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;
        }
    }


 

测试

  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();
        }
    }


  结果

代码:http://download.csdn.net/detail/yysyangyangyangshan/6337471

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值