小弟新手,想做个简单的网络硬盘。需要将上传文件的信息保存到数据库中。
地址例如:E:\others\jsp课件\09.ppt,(实际中地址长度是未知的,因为任何文件存放的地址也是随即的嘛),按“\”分割。
而小弟最终需要获得的是文件路径E:\others\jsp课件和文件名09.ppt这两个字符串,请问大侠们该这么做?

解决方案 »

  1.   

    int index = path.lastIndexOf('\\');
    if(index < 0) {
        return;
    }
    String dir = path.substring(0, offset);
    String file = path.substring(offset + 1);
      

  2.   

    String str = "E:\\others\\jsp课件\\09.ppt";
    System.out.println(str.substring(0, str.lastIndexOf("\\")+1));
    System.out.println(str.substring(str.lastIndexOf("\\")+1, str.length()));
      

  3.   

    使用 String的 substring和lastIndexOf方法
      

  4.   

    s.substring(0,s.lastIndexOf("\\"))
    s.substring(s.lastIndexOf("\\")+1,s.length())
      

  5.   

    这个跟长度没任何关系。只是截取到最后一个/的问题而已。而且,File类也有getName的方法。
      

  6.   

    好吧,一个很十三的方法………………public static void main(String[] args) {
    String s = "E:\\others\\jsp课件\\09.ppt";
    File f = new File(s);
    System.out.println(f.getParent());
    System.out.println(f.getName());
    }
      

  7.   

    可以试试用SQL做,我写了一个希望对你有帮助DECLARE
     @dcl_str varchar(255),
    --拆分后文件名
    @filename  varchar(50),
    --拆分后地址名
    @filepath varchar(100)
    --需要拆分字符串
    set @dcl_str='E:\othedfsdfrs\jsp课vv件\09.adfappt'
    set @filename=right(@dcl_str,charindex('\', REVERSE(@dcl_str))-1)
    set @filepath=left(@dcl_str,datalength(@dcl_str)-charindex('\', REVERSE(@dcl_str))-1)
    select  @filename, @filepath