假设文件路径为 d:/program files/1.txt
那么就会报错,找不到文件,有什么解决的办法么?
空格是20%也不行 d:/program%20files/1.txt也不行的

解决方案 »

  1.   

    楼主JDK版本是什么?
    我的JDK版本是
    java version "1.6.0_04"
    Java(TM) SE Runtime Environment (build 1.6.0_04-b12)
    Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode, sharing)代码public class FileTest { public static void main(String[] args) {
    File file = new File("C:/Program Files/Wopti/WoptiHelp.chm");
    System.out.println(file.canRead());//是否能读
    System.out.println(file.canWrite());//是否能写
    System.out.println(file.exists());//是否存在
    System.out.println(file.isFile());//是否为标准文件
    System.out.println(file.isHidden());//文件属性是否为隐藏
    System.out.println(file.isAbsolute());//是否为绝对路径
    System.out.println(file.length());//文件的长度
    System.out.println(file.getParent());//获取文件的上级目录
    System.out.println(file.isAbsolute());//是否为绝对路径
    System.out.println(file.getPath());//获取文件的路径
    }
    }
    输出结果:
    true
    true
    true
    true
    false
    true
    109754
    C:\Program Files\Wopti
    true
    C:\Program Files\Wopti\WoptiHelp.chm
      

  2.   

    你没转义吧?d://program files//1.txt 至于路径不是合法的路径  你要自己去验证  不能java什么都帮你做好了吧  呵呵
      

  3.   

     File f = new File("C:\\Program Files\\1.txt"); 这样写能帮主楼解决问题,还有,2楼猴子写的方法也是对的!C://Program Files//1.txt
      

  4.   

    "C:\\Program Files\\1.txt"
    这样是转移符号来定义\,用于windows系统可以,linux系统就不行了
    "C:/Program Files/1.txt"
    windows可以将/解析成\,也能用于linux系统,而且不需要//来转移
      

  5.   

    File类有个常量,代替分割符的,是s开头的,忘了那个词怎么写了,查一下
      

  6.   

    String s = File.separator;
    这个就是File里那个\
    是个静态字段,打印出来就是\
      

  7.   

    File f = new File("C:\\Program Files\\1.txt"); 
      

  8.   

    File f = new File("C:/Program Files/1.txt");