Подтвердить что ты не робот

Получить имя файла без расширения из полного пути

Я делаю программу для хранения данных из файлов 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"? -

4b9b3361

Ответ 1

Я обычно использую это решение, описанное в другом сообщении:

import org.apache.commons.io.FilenameUtils;

String basename = FilenameUtils.getBaseName(fileName);

Ответ 2

Вы можете сделать это следующим образом:

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);

Ответ 3

Вы можете использовать класс 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("."));
}

Ответ 4

Вы можете вызвать метод file.getName(), который возвращает имя файла как String. Затем вы сокращаете расширение.

String fileName = file.getName();
fileName = fileName.substring(0, fileName.lastIndexOf(".")+1);

Ответ 5

if (!filename.equals(""))    
{
        String [] fileparts = filename.split("\\.");
        String filename = fileparts[0]; //Get first part
}