Ответ 1
Я обычно использую это решение, описанное в другом сообщении:
import org.apache.commons.io.FilenameUtils;
String basename = FilenameUtils.getBaseName(fileName);
Я делаю программу для хранения данных из файлов 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('.')));
После этого я хотел бы иметь: String filename = .......
Полный путь, который будет набирать пользователь, будет следующим: C:\\Users\\myfiles\\Documents\\test9.xls
Имя файла, которое я создал бы, будет содержать только имя без .xls
!
Может ли кто-нибудь помочь мне, как я это сделаю?
Как бы я это сделал, если бы хотел взять в качестве имени файла "test9.xls"? -
Я обычно использую это решение, описанное в другом сообщении:
import org.apache.commons.io.FilenameUtils;
String basename = FilenameUtils.getBaseName(fileName);
Вы можете сделать это следующим образом:
String fname = file.getName();
int pos = fname.lastIndexOf(".");
if (pos > 0) {
fname = fname.substring(0, pos);
}
или вы можете использовать apache.commons.io.FilenameUtils:
String fileNameWithOutExt = FilenameUtils.removeExtension(fileNameWithExt);
Вы можете использовать класс File
, чтобы получить имя файла:
File userFile = new File(strfullPath);
String filename = userFile.getName();
Использование объекта File
имеет множество преимуществ, в том числе возможность протестировать файл:
if (userFile.isFile()) {
// Yay, it a valid file (not a directory and not an invalid path)
}
Вам также нужно проверить, имеет ли файл расширение, прежде чем пытаться его разбить:
if (filename.indexOf(".") > 0) {
filename = filename.substring(0, filename.lastIndexOf("."));
}
Вы можете вызвать метод file.getName()
, который возвращает имя файла как String. Затем вы сокращаете расширение.
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
}