1,循环是从最后一个字符开始循环检测是不是\,/,:,如果是则i--,代表这个\,/,:在字符串中的index
2,path.Substring(0,   i);   0是从字符的第一个开始

解决方案 »

  1.   

    LZ给这样的代码,真的很少有人愿意看,太乱!!!这些基础的类库在MSDN上可以找到完整的解释。
    using System;class Test
    {
        static void SplitPath(string path, out string dir, out   string name)
        {
            int leftPathLength = path.Length; // pathLength是path string的长度,没得说
            while (leftPathLength > 0) //余下的未解析的path串长度
            {
                char ch = path[leftPathLength - 1]; //取出path中的leftPathLength-1处的字符
                if (ch == '\\' || ch == '/' || ch == ':') //判断这个字符是否为系统路径的分隔符,从逻辑来看,分出文件名后就结束查找
                    break;
                leftPathLength--;
            }
            dir = path.Substring(0, leftPathLength);         //从path的第0开始,长度为leftPathLength个字符
            name = path.Substring(leftPathLength);
        }    static void Main()
        {
            string dir, name;
            SplitPath("c:\\Windows\\System\\hello.txt", out   dir, out   name);
            Console.WriteLine(dir);
            Console.WriteLine(name);
        }
    }