Проверьте расширение файла в 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!
Я не могу найти, что не так с моим кодом, может кто-нибудь, пожалуйста, помогите.
8 ответов
Следующий
extension != excel
должно быть
!excel.equals(extension)
или же
!excel.equalsIgnoreCase(extension)
Смотрите также
==
проверяет ссылочное равенство. Для теста на равенство значений используйте .equals
, использование String#equalsIgnoreCase
если вы хотите, чтобы дело не принималось во внимание во время теста на равенство.
Другое дело: не изобретай велосипед, если он сильно не сломан. В вашем случае вы должны использовать Apache Commons FilenameUtils#isExtension для проверки расширения.
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!");
}
Использование
excel.equals(extension)
or
excel.equalsIgnoreCase(extension)
Вы можете использовать Apache Commons Api, чтобы проверить расширение файла.
String filename = file.getName();
if(!FilenameUtils.isExtension(filename,"xls")){
JOptionPane.showMessageDialog(null, "Choose an excel file!");
}
http://commons.apache.org/io/api-release/index.html?org/apache/commons/io/package-summary.html
В моей программе я сделал это
if(file_name.endsWith(".xls") || file_name.endsWith(".xlsx"))
// something works with file
Используйте метод equals() вместо символов != в вашем случае. Я имею в виду написать
if (!(extension.equals(excel))){..........}