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

Java 检查文件是否存在于特定目录中,java,directory,file-exists,Java,Directory,File Exists,我正在尝试检查给定目录中的特定文件。我不想要代码,但我想修复我的代码。这个问题唯一的区别是,我查找扩展名为.MOD的文件 我已准备好代码:- public static int checkExists(String directory, String file) { File dir = new File(directory); File[] dir_contents = dir.listFiles(); String temp = file + ".MOD";

我正在尝试检查给定目录中的特定文件。我不想要代码,但我想修复我的代码。这个问题唯一的区别是,我查找扩展名为
.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;
}
public static int checkExists(字符串目录,字符串文件){
文件目录=新文件(目录);
File[]dir_contents=dir.listFiles();
字符串temp=file+“.MOD”;
布尔检查=新文件(temp).exists();
System.out.println(“Check”+Check);//-->总是说false

对于(int i=0;i您希望temp.MOD文件位于当前目录(运行应用程序的目录)中,还是希望它位于“目录”文件夹中?在后一种情况下,请尝试以下方式创建文件:

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

还要检查文件权限,因为它也会在权限错误时失败。正如Spaeth所提到的,区分大小写也可能是问题的原因。

这就是问题所在

String temp = 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; 
String dirName=“/home/demo”;
文件目录=新文件(目录名);
File[]dir_contents=dir.listFiles();
字符串temp=dirName+“/”+“自述文件”+“.MOD”;
布尔检查=新文件(temp).exists();
System.out.println(“Check”+Check);//-->总是说false
for(int i=0;i
试试这个

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

您是否已经打印出tmp值并检查该文件是否确实存在?如果存在,这是哪个环境(windows或linux)在linux中,文件区分大小写…是的,我尝试打印临时值,文件确实存在于目录中。它是windows操作系统,但
file
参数和目录中文件的实际名称区分大小写相同。@gkris,您必须使用.equals()for loopfor循环只是检查相同文件存在性的另一种方法。我有两种方法来检查相同的函数,因为它们都不起作用。现在我可以安全地删除整个for循环。再次感谢。这不会有帮助,因为我没有检查当前目录中的文件。总之,我得到了答案并接受了它。谢谢我在path中的意思是…ok new File(“./File_name”);”(dot)操作符表示当前目录,然后简单地给出所需文件的路径
File f = new File("./file_name");
if(f.exists()){
    System.out.println("success");
}
else{
    System.out.println("fail");
}