我正在尝试检查给定目录中的特定文件。我不想要代码,但我想修复我的代码。这个问题的唯一区别是,我查找的文件扩展名为.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;
}
但由于某些原因,它不起作用。我不明白为什么,有人能在这里发现任何错误吗?
答案 0 :(得分:45)
您是否希望temp.MOD文件位于当前目录(运行应用程序的目录)中,或者您希望它位于“目录”文件夹中?在后一种情况下,尝试以这种方式创建文件:
boolean check = new File(directory, temp).exists();
同时检查文件权限,因为它也会因权限错误而失败。案例敏感也可能是斯帕思提到的问题的原因。
答案 1 :(得分:4)
这是你遇到错误的地方。
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;
答案 2 :(得分:3)
试试这个..............
File f = new File("./file_name");
if(f.exists()){
System.out.println("success");
}
else{
System.out.println("fail");
}