Подтвердить что ты не робот

Проверка наличия файла в определенном каталоге

Я пытаюсь проверить конкретный файл в данном каталоге. Мне не нужен код, но я хочу исправить тот, который у меня есть. Единственное отличие в этом вопросе состоит в том, что я ищу файлы с расширением .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;
}

Но по некоторым причинам это не сработает. Я не понимаю, почему, может ли кто-нибудь найти здесь ошибку?

4b9b3361

Ответ 1

Ожидаете ли вы, что файл temp.MOD находится в текущем каталоге (каталог, из которого вы запускаете приложение), или вы хотите, чтобы он находился в папке "directory"? В последнем случае попробуйте создать файл следующим образом:

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

Также проверяйте права доступа к файлам, так как они также не будут допущены. Случай сенсибильно может также быть причиной проблемы, о которой говорил Спайтер.

Ответ 2

Здесь у вас есть ошибка.

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; 

Ответ 3

Попробуйте это..............

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