На самом деле это очень просто, при условии, что у вас есть правильное имя файла.
В именах файлов Windows символ точки используется только для обозначения расширения.Поэтому удалите точку и все, что после нее.
В именах файлов, похожих на unix, точка указывает расширение, если оно находится после последнего разделителя ('/') и имеет хотя бы один символ между ним и последним разделителем (и не является первым символом, если разделителей нет).Найдите последнюю точку, посмотрите, удовлетворяет ли она условиям, и удалите ее и любые завершающие символы, если это так.
Важно, чтобы вы проверили имя файла перед тем, как сделать это, поскольку этот алгоритм для инвазированного имени файла мог бы сделатьчто-то неожиданное и создать правильное имя файла.Поэтому в Windows вам может потребоваться проверить, что после точки нет обратной косой черты или двоеточия.
Если вы не знаете, с каким именем файла вы имеете дело, относитесь к ним как к Unixдадут вам большую часть пути.