检查文件是否存在于特定目录中

我试图检查给定目录中的特定文件。 我不想要代码,但我想修复我的代码。 这个问题的唯一区别是,我查找扩展名为.MOD文件。

我准备好了代码: –

 public static int checkExists(String directory, String file) { File dir = new File(directory); File[] dir_contents = dir.listFiles(); String temp = file + ".MOD"; boolean check = new File(temp).exists(); System.out.println("Check"+check); // -->always says false for(int i = 0; i<dir_contents.length;i++) { if(dir_contents[i].getName() == (file + ".MOD")) return Constants.FILE_EXISTS; } return Constants.FILE_DOES_NOT_EXIST; } 

但由于某些原因,它不起作用。 我不明白为什么,有人能在这里发现任何错误吗?

您是否期望temp.MOD文件位于当前目录(运行应用程序的目录)中,或者您希望它位于“目录”文件夹中? 在后一种情况下,尝试以这种方式创建文件:

 boolean check = new File(directory, temp).exists(); 

还要检查文件权限,因为它也会因权限错误而失败。 案例敏感也可能是Spaeth提到的问题的原因。

这是你有bug的地方。

 String temp = file + ".MOD"; 

 if(dir_contents[i].getName() == (file + ".MOD")) 

代码boolean check = new File(temp).exists(); 将检查当前目录中不在所需目录中的文件。

  String dirName="/home/demo"; File dir = new File(dirName); File[] dir_contents = dir.listFiles(); String temp = dirName+"/"+"README" + ".MOD"; boolean check = new File(temp).exists(); System.out.println("Check" + check); // -->always says false for (int i = 0; i < dir_contents.length; i++) { if (dir_contents[i].getName().equals("README" + ".MOD")) return Constants.FILE_EXISTS; } return Constants.FILE_DOES_NOT_EXIST; 

试试这个…………..

 File f = new File("./file_name"); if(f.exists()){ System.out.println("success"); } else{ System.out.println("fail"); }