回 帖 发 新 帖 刷新版面

主题:[讨论]小弟菜鸟谁来帮我解释下?



public static string getParentDirectory()
    {
//获取服务器的目录
        
        System.Web.HttpContext context = System.Web.HttpContext.Current;
        string path = context.Session["Path"].ToString();
        if (path == "./")
            return ("../");    
        else if (path == "/")
            return ("/");
        else
        {
            
            if (path.LastIndexOf("/") == path.Length - 1)
            {
                path = path.Remove(path.LastIndexOf("/"), (path.Length - path.LastIndexOf("/")));
            }
            try
            {
                
                path = path.Remove(path.LastIndexOf("/"), (path.Length - path.LastIndexOf("/")));
                return (path + "/");
            }
            catch (ArgumentOutOfRangeException ex)
            {
                return ("/");    // default to root;
            }
        }
    }
以上是获取上一级目录的代码,我看不懂的地方是if (path.LastIndexOf("/") == path.Length - 1)
            {
                path = path.Remove(path.LastIndexOf("/"), (path.Length - path.LastIndexOf("/")));执行path后,为什么后面还要加个try
{
                
                path = path.Remove(path.LastIndexOf("/"), (path.Length - path.LastIndexOf("/")))这2个path是一样的啊,不知道后面加个path的作用,有知道的大虾说下,先谢谢了,在学习asp.net遇到的问题.

回复列表 (共1个回复)

沙发

因为最后一个要加以判断,当该目录没有如果执行移除操作,就会出错了。

我来回复

您尚未登录,请登录后再回复。点此登录或注册