Ottieni il nome del file da una stringa di percorso in C #

Programma in WPF C #. Ho ad esempio il seguente percorso:

C:\Program Files\hello.txt 

e voglio produrre ” Ciao ” da esso.

Il percorso è un estratto di stringa dal database. Attualmente sto usando il seguente metodo (diviso dal percorso da “\” e poi diviso di nuovo da un “.”):

 string path = "C:\\Program Files\\hello.txt"; string[] pathArr = path.Split('\\'); string[] fileArr = pathArr.Last().Split('.'); string fileName = fileArr.Last().ToString(); 

Funziona, ma credo che ci dovrebbe essere una soluzione più breve e più intelligente a questo. Qualche idea?

Path.GetFileName

Path.GetFileNameWithoutExtension

La class Path è meravigliosa.

provare

 System.IO.Path.GetFileNameWithoutExtension(path); 

dimostrazione

 string fileName = @"C:\mydir\myfile.ext"; string path = @"C:\mydir\"; string result; result = Path.GetFileNameWithoutExtension(fileName); Console.WriteLine("GetFileNameWithoutExtension('{0}') returns '{1}'", fileName, result); result = Path.GetFileName(path); Console.WriteLine("GetFileName('{0}') returns '{1}'", path, result); // This code produces output similar to the following: // // GetFileNameWithoutExtension('C:\mydir\myfile.ext') returns 'myfile' // GetFileName('C:\mydir\') returns '' 

https://msdn.microsoft.com/en-gb/library/system.io.path.getfilenamewithoutextension%28v=vs.80%29.aspx

Puoi utilizzare l’API Path come segue:

  var filenNme = Path.GetFileNameWithoutExtension([File Path]); 

Ulteriori informazioni: Path.GetFileNameWithoutExtension

 var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path); 

Path.GetFileNameWithoutExtension

Prova questo:

 string fileName = Path.GetFileNameWithoutExtension(@"C:\Program Files\hello.txt"); 

Ciò restituirà “ciao” per fileName.

 string Location = "C:\\Program Files\\hello.txt"; string FileName = Location.Substring(Location.LastIndexOf('\\') + 1); 

Prova questo,

 string [email protected]"C:\mydir\myfile.ext"; string Result=Path.GetFileName(FilePath);//With Extension string Result=Path.GetFileNameWithoutExtension(FilePath);//Without Extension 
 Namespace: using System.IO; //use this to get file name dynamically string filelocation = Properties.Settings.Default.Filelocation; //use this to get file name statically //string filelocation = @"D:\FileDirectory\"; string[] filesname = Directory.GetFiles(filelocation); //for multiple files Your path configuration in App.config file if you are going to get file name dynamically -    D:\\DeleteFileTest