我正在制作一个程序来存储数据库中excel文件的数据.我希望用户在控制台中提供文件的完整路径,并在程序之后只接受文件名继续.
加载完整路径的代码是:
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('.')));
Run Code Online (Sandbox Code Playgroud)
之后我想: String filename = .......
用户键入的完整路径如下所示: C:\\Users\\myfiles\\Documents\\test9.xls
我创建的文件名将只使用没有的名称.xls!任何人都可以帮助我如何做到这一点?
如果我想把文件名称作为"test9.xls",我会怎么做? -
小智 37
我通常使用其他帖子中描述的解决方案:
import org.apache.commons.io.FilenameUtils;
String basename = FilenameUtils.getBaseName(fileName);
Run Code Online (Sandbox Code Playgroud)
Clo*_*ble 35
你可以这样做:
String fname = file.getName();
int pos = fname.lastIndexOf(".");
if (pos > 0) {
fname = fname.substring(0, pos);
}
Run Code Online (Sandbox Code Playgroud)
或者您可以使用apache.commons.io.FilenameUtils:
String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);
Run Code Online (Sandbox Code Playgroud)
Dun*_*nes 19
您可以使用File该类来获取文件名:
File userFile = new File(strfullPath);
String filename = userFile.getName();
Run Code Online (Sandbox Code Playgroud)
使用File对象有许多好处,包括测试文件存在的能力:
if (userFile.isFile()) {
// Yay, it's a valid file (not a directory and not an invalid path)
}
Run Code Online (Sandbox Code Playgroud)
在尝试剥离文件之前,您还需要检查文件是否有扩展名:
if (filename.indexOf(".") > 0) {
filename = filename.substring(0, filename.lastIndexOf("."));
}
Run Code Online (Sandbox Code Playgroud)
您可以调用file.getName()以字符串形式返回文件名的方法。然后你剪掉延伸部分。
String fileName = file.getName();
fileName = fileName.substring(0, fileName.lastIndexOf(".")+1);
Run Code Online (Sandbox Code Playgroud)