web-dev-qa-db-fra.com

Vérifiez l'extension du fichier dans Java

Je dois importer des données d'un fichier Excel vers une base de données et pour ce faire, je souhaite vérifier l'extension du fichier choisi.

Voici mon code:

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!");
    }
}

Mais je reçois toujours:

Choisissez un fichier Excel!

Je ne trouve pas ce qui ne va pas avec mon code, quelqu'un pourrait-il m'aider?.

28
Joe88

suivant

extension != Excel

devrait être

!Excel.equals(extension)

ou

!Excel.equalsIgnoreCase(extension)

Voir aussi

28
Jigar Joshi

== teste référentiellement l'égalité. Pour le test d'égalité des valeurs, utilisez .equals. Utilisation String#equalsIgnoreCase si vous souhaitez que le cas ne soit pas pris en compte lors du test d'égalité.

Autre chose: ne réinventez pas la roue, sauf si elle est très cassée. Dans votre cas, vous devez utiliser Apache Commons ' FilenameUtils # isExtension pour vérifier l'extension.

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

}

doit être utilisé comme

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

}

Et

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

comme

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

Vous pouvez utiliser Apache Commons Api pour vérifier l'extension du fichier

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

3
Rajesh Pitty

utilisation

Excel.equals(extension)

or

Excel.equalsIgnoreCase(extension)
3
Pramod Kumar

utilisez la méthode equals () au lieu des symboles ! = dans votre cas. Je veux dire écrire

if (!(extension.equals(Excel))){..........}
1
Chandra Sekhar

Dans mon programme, je l'ai fait

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

Que diriez-vous

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

?

0
kevlaria