Saya tahu ini adalah pertanyaan lama dan Path.GetFileNameWithoutExtension
merupakan pilihan yang lebih baik dan mungkin lebih bersih. Tetapi secara pribadi saya telah menambahkan dua metode ini ke proyek saya dan ingin membagikannya. Ini membutuhkan C # 8.0 karena menggunakan rentang dan indeks.
public static string RemoveExtension(this string file) => ReplaceExtension(file, null);
public static string ReplaceExtension(this string file, string extension)
{
var split = file.Split('.');
if (string.IsNullOrEmpty(extension))
return string.Join(".", split[..^1]);
split[^1] = extension;
return string.Join(".", split);
}