Java不知道文件何时不存在[关闭]
Posted
技术标签:
【中文标题】Java不知道文件何时不存在[关闭]【英文标题】:Java does not know when file does NOT exist [closed] 【发布时间】: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,可能第一行就报错了。
【参考方案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 虚拟机的目录。
【讨论】:
以上是关于Java不知道文件何时不存在[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Apollo 如何足够聪明地知道何时合并,但不知道何时添加?
CS0103 - 当前上下文中不存在名称“GetListFromCVS”[关闭]
Linux 和 Csharp,检查 Linux 中是不是不存在文件/文件夹,如果存在,则通过 Csharp SSH 运行 MKDIR - [关闭]