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

Проверить расширение файла в Java

Мне нужно импортировать данные из файла Excel в базу данных, и для этого мне нужно проверить расширение выбранного файла.

Это мой код:

String filename = file.getName();
String extension = filename.substring(filename.lastIndexOf(".") + 1, filename.length());

String excel = "xls";
if (extension != excel) {
    JOptionPane.showMessageDialog(null, "Choose an excel file!");
}
else {
    String filepath = file.getAbsolutePath();
    JOptionPane.showMessageDialog(null, filepath);
    String upload = UploadPoData.initialize(null, filepath);

    if (upload == "OK") {
        JOptionPane.showMessageDialog(null, "Upload Successful!");
    }
}

Но я всегда получаю:

Выберите файл excel!

Я не могу найти, что не так с моим кодом, может кто-то помочь.

4b9b3361

Ответ 2

== проверяет эквивалентное равенство. Для теста равенства ценности используйте .equals. Используйте String#equalsIgnoreCase, если вы хотите, чтобы случай не учитывался во время теста равенства.

Другое дело: не изобретать велосипед, если он не сломался. В вашем случае вы должны использовать Apache Commons FilenameUtils # isExtension, чтобы проверить расширение.

Ответ 3

if (extension != excel){
   JOptionPane.showMessageDialog(null, "Choose an excel file!");

}

следует использовать как

if (!extension.equals(excel)){
   JOptionPane.showMessageDialog(null, "Choose an excel file!");

}

и

 if (upload == "OK") {
 JOptionPane.showMessageDialog(null,"Upload Successful!");
}

как

 if ("OK".equals(upload)) {
 JOptionPane.showMessageDialog(null,"Upload Successful!");
}

Ответ 4

использовать

excel.equals(extension)

or

excel.equalsIgnoreCase(extension)

Ответ 6

используйте equals() вместо символов != в вашем случае. Я имею в виду писать

if (!(extension.equals(excel))){..........}

Ответ 7

Как насчет

if (filename.endsWith("xls"){
    <blah blah blah>
}

?

Ответ 8

В моей программе я сделал это

if(file_name.endsWith(".xls") || file_name.endsWith(".xlsx"))
   // something works with file