【问题标题】:Java does not know when file does NOT exist [closed]Java不知道文件何时不存在[关闭]
【发布时间】:2011-05-09 04:51:36
【问题描述】:

Java 知道文件何时存在,因为它会打印出“找到文件”,但当文件不存在时,它不会打印出“找不到文件”

    File file = new File(filePath, "Test_1.exe");

    if (file.exists()){
        System.out.println("File found");
    }else{
        System.out.println("File not found");
    }

有人知道为什么吗?文件路径是正确的,因为我已经仔细检查了这一点。奇怪的是,如果文件不存在,它不会打印出来,但如果它存在,就会打印出来。

我也试过 if (!file.exists()) 不走运!

【问题讨论】:

  • 如果 "File not found" 不存在,它肯定会为我打印出来。
  • 尝试使用File#canRead() 检查您的应用程序是否有权读取它,也可能是这样。
  • 可能有一个错误被您捕获并忽略了?
  • '文件路径正确,因为我已经仔细检查过'。再检查一遍。显然是不正确的。
  • 同意EJP,可能第一行就报错了。

标签: java file exists


【解决方案1】:

试试

try
{
    File file = new File(filePath, "Test_1.exe");

     if (file.exists())
     {
          System.out.println("File found");
     }
     else
     {
            System.out.println("File not found");
      }
}
catch(SecurityException se)
{
     se.printStackTrace();
}

【讨论】:

    【解决方案2】:

    尝试使用文件的完整路径。例如:

    File file = new File(filePath, "c:/temp/Test_1.exe");
    

    来自 javadocs:

    相反,相对路径名必须根据从其他路径名中获取的信息来解释。默认情况下,java.io 包中的类总是根据当前用户目录解析相对路径名。此目录由系统属性 user.dir 命名,通常是调用 Java 虚拟机的目录。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-04-10
      • 2012-09-21
      • 1970-01-01
      • 2014-02-09
      • 2013-12-30
      • 2012-12-16
      • 1970-01-01
      相关资源
      最近更新 更多