我要复制文件,在网上查找了代码,自己打了一下string path = "index.aspx";
        int fileLEN=path.LastIndexOf(".");//获取文件.前面的位数,.所在的位置
        Response.Write(fileLEN);
        int pathLen = path.Length;//文件总位数
        string tempName = path.Substring(fileLEN, pathLen - fileLEN);
        int len = path.LastIndexOf(@"\");
       
        string tempPath = path.Substring(0, len) + "\\" + DateTime.Now.ToString("yyyymmddhhssmm") + tempName;        System.IO.File.Create(tempPath);错误如下:
长度不能小于 0。
参数名: length 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.ArgumentOutOfRangeException: 长度不能小于 0。
参数名: length源错误: 
行 28:         int len = path.LastIndexOf(@"\");
行 29:        
行 30:         string tempPath = path.Substring(0, len) + "\\" + DateTime.Now.ToString("yyyymmddhhssmm") + tempName;
行 31: 
行 32:         System.IO.File.Create(tempPath);
 顺便问一下     int len = path.LastIndexOf(@"\");这句是什么意思

解决方案 »

  1.   

    string path = "index.aspx"; 
    这path要写成"c:\abc\def.doc"int len = path.LastIndexOf(@"\"); //获取path字符串中最后一个"\"的位置索引
      

  2.   

     int len = path.LastIndexOf(@"\");这句是什么意思
    =========
    从右向左查找\符号的位置,因为\是特殊字符,所以@来取消转义功能
      

  3.   

    int len = path.LastIndexOf(@"\"); 
    找不到相应的位置,返回-1
    Substring调用就出错了
    只要你保证你的path里有"\"符号就不会错了
      

  4.   

    int len = path.LastIndexOf(@"\");  // 这里获得的是0 , 运行path.Substring(0,len)就出错了, 在Substring 中 len 不能为0path.LastIndexOf(@"\") <==> path.LastIndexOf("\\") "@"是把后面的字符串中特殊符号转义的意思
         
      

  5.   

    现在写成 string path = "d:\aa\Default.aspx"; 
    但是现在出错了 
    无法识别的转义序列\,应该怎么做