import java.io.*;
public class Aw
{
public static void main(String[] args)
{
File a=new File("E:/wsdw.txt");
System.out.println(a.exists());
System.out.println(a.getName());
}
}
运行的结果是:false
            wsdw.txt
我的E盘根本就没有wsdw.txt这个文件,但a.getName()竟然会是wsdw.txt,我E:盘有个ww.txt文件夹,把File a=new File("E:/wsdw.txt");换成File a=new File("E:/ww.txt");
结果还是:false
         ww.txt总之,我随便把弄个不存在的文件结果都是a.getName());都可以得到那个文件名,而我弄了存在的文件后a.exists());的结果都是false;

解决方案 »

  1.   

    不会吧
    得到文件名是肯定的,因为得到的是File对象的文件名
    但是是否存在,存在就返回true啊
    你确定存在返回false;
      

  2.   

    我可以负责任的告诉你,用存在的文件去试的话,结果还是false,就是因为结果不符合逻辑所以我才要问啊
      

  3.   

    LZ写得没错.a.getName()是缓存里的文件名,是你预设的,不是真实的文件名,就算瞎写文件名也没关系,不过在文件读取和写入的时候会有IOException 异常错误.ls的,路径好象是有两种写法的.你的是另外一种
      

  4.   

    楼主不要意思刚才我实验过了还只能是用这个“/”字符呢,但是我返回值是true哦,看看楼主是不是有其它的错误呢。
      

  5.   

    5楼说的很对。
    File f = new File("C:" + File.separator + "test.txt");
    if(f.exists())
      System.out.println(f.getName() + " exist!");
    else
      System.out.println(f.getName() + " not exist!");  
    至于 / 和 \ ,最好用 File.separator 来替代,这样不用考虑操作系统的分隔符是什么。
      

  6.   

    程序没有问题,绝对的,我已经在自己机子上运行过了,文件存在目录下时,返回的是true,不存在才返回false
      

  7.   

    程序是对的,
    但是你对File的类理解有点误差。
    File对象你可以把他理解为文件名,别把他当作一个具体的文件对象。
      

  8.   

    都返回false了,肯定了文件不存在,getName是取得参数里的文件名了。
    具体查api
      

  9.   

    上面的, 我都说了,文件存在也会返回false,所以我才问啊
      

  10.   

    是这样的
    File a=new File("E:\\ww.txt"); 
      

  11.   

    我运行的结果是正确的啊,存在就是true,不存在就是false,楼主的虚拟机真是怪了事了呵呵,建议重装一下
      

  12.   

    是这样的.文件没有就是false,无论有没有这个文件,只要new了一个对象,那么就有了名字.