Je crée un programme pour stocker des données à partir de fichiers Excel dans une base de données. Je voudrais que l'utilisateur donne à la console le chemin complet du fichier et ensuite que le programme ne prenne que le nom du fichier pour continuer.
Le code pour charger le chemin complet est:
String strfullPath = "";
Scanner scanner = new Scanner(System.in);
System.out.println("Please enter the fullpath of the file");
strfullPath = scanner.nextLine();
String file = strfullPath.substring(strfullPath.lastIndexOf('/') + 1);
System.out.println(file.substring(0, file.indexOf('.')));
Après cela, j'aimerais avoir: String filename = .......
Le chemin complet que l'utilisateur taperait serait comme ceci: C:\\Users\\myfiles\\Documents\\test9.xls
Le nom de fichier que je créerais ne prendrait que le nom sans le .xls
! Quelqu'un pourrait-il m'aider à faire cela?
Comment je le ferais si je voulais prendre comme nom de fichier "test9.xls"? -
J'utilise habituellement cette solution décrite dans un autre post:
import org.Apache.commons.io.FilenameUtils;
String basename = FilenameUtils.getBaseName(fileName);
Vous pouvez le faire comme ça:
String fname = file.getName();
int pos = fname.lastIndexOf(".");
if (pos > 0) {
fname = fname.substring(0, pos);
}
ou vous pouvez utiliser Apache.commons.io.FilenameUtils :
String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);
Vous pouvez utiliser la classe File
pour obtenir le nom du fichier:
File userFile = new File(strfullPath);
String filename = userFile.getName();
L'utilisation d'un objet File
présente de nombreux avantages, notamment la possibilité de tester le fichier:
if (userFile.isFile()) {
// Yay, it's a valid file (not a directory and not an invalid path)
}
Vous devez également vérifier que le fichier a une extension avant d'essayer de le supprimer:
if (filename.indexOf(".") > 0) {
filename = filename.substring(0, filename.lastIndexOf("."));
}
Vous pouvez appeler la méthode file.getName()
qui renvoie le nom du fichier sous forme de chaîne. Ensuite, vous coupez l'extension.
String fileName = file.getName();
fileName = fileName.substring(0, fileName.lastIndexOf(".")+1);
if (!filename.equals(""))
{
String [] fileparts = filename.split("\\.");
String filename = fileparts[0]; //Get first part
}