С# - Как извлечь имя файла и расширение из пути?
Итак, скажем, у меня
string path = "C:\\Program Files\\Program\\File.exe";
Как мне получить только "File.exe"? Я думал что-то с расколом (см. Ниже), но то, что я пробовал, не работает...
Это мой код.
List<string> procs = new List<string>(); //Used to check if designated process is already running
foreach (Process prcs in Process.GetProcesses())
procs.Add(prcs.ProcessName); //Add each process to the list
foreach (string l in File.ReadAllLines("MultiStart.txt")) //Get list of processes (full path)
if (!l.StartsWith("//")) //Check if it commented out
if (!procs.Contains(l.Split('\\')[l.Split('\\').Length - 1])) //Check if process is already running
Process.Start(l);
Я, вероятно, просто ноб.._.
Ответы
Ответ 1
System.IO
имеет разные классы для работы с файлами и каталогами. Между ними один из самых полезных - Path
, который имеет множество статических вспомогательных методов для работы с файлами и папками:
Path.GetExtension(yourPath); // returns .exe
Path.GetFileNameWithoutExtension(yourPath); // returns File
Path.GetFileName(yourPath); // returns File.exe
Path.GetDirectoryName(yourPath); // returns C:\Program Files\Program
Ответ 2
Вы ищете Path.GetFileName(string)
.
Ответ 3
При последнем поиске символов вы можете получить правильный результат.
string path = "C:\\Program Files\\Program\\fatih.gurdal.docx";
string fileName = path.Substring(path.LastIndexOf(((char)92))+ 1);
int index = fileName.LastIndexOf('.');
string onyName= fileName.Substring(0, index);
string fileExtension = fileName.Substring(index + 1);
Console.WriteLine("Full File Name: "+fileName);
Console.WriteLine("Full File Ony Name: "+onyName);
Console.WriteLine("Full File Extension: "+fileExtension);
Вывод:
Полное имя файла: fatih.gurdal.docx
Full File Ony Имя: fatih.gurdal
Полное расширение файла: docx