string ext=FileName.Substring(FileName.LastIndexOf('.'));
string[] temp= FileName.Split('.');
string ext =temp[temp.Length-1];
System.Text.RegularExpressions.Regex extend = new System.Text.RegularExpressions.Regex(@"(?:.*\.)(.*)");
string ext = extend.Match(FileName).Groups[1].Value;
Не учитывают такого случая
some_path/fome_folder_with.dot/some_file_without_extention
или
some_path/.some_name_started_with_dot
Последние файлы нельзя создать в винде но можно использовать, многие кроссплатформенные программы грешат созданием подобных "инородных" путей.