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