Получить имя файла из строки пути в C#
я программирую в WPF C#. У меня есть, например, следующий путь:
C:Program Fileshello.txt
и я хочу вывести"привет" из него.
путь представляет собой извлечение строки из базы данных. В настоящее время я использую следующий метод (split from path by '' then split again by a '.'):
string path = "C:Program Fileshello.txt";
string[] pathArr = path.Split('');
string[] fileArr = pathArr.Last().Split('.');
string fileName = fileArr.Last().ToString();
это работает, но я считаю, что должно быть более короткое и умное решение для этого. Есть идеи?
9 ответов:
путь.GetFileNameWithoutExtension
The путь класс замечательно.
попробовать
fileName = Path.GetFileName (path);http://msdn.microsoft.com/de-de/library/system.io.path.getfilename.aspx
попробовать
System.IO.Path.GetFileNameWithoutExtension(path);демо
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 ''
можно использовать путь API следующим образом:
var filenNme = Path.GetFileNameWithoutExtension([File Path]);Подробнее: путь.GetFileNameWithoutExtension
попробуйте это:
string fileName = Path.GetFileNameWithoutExtension(@"C:\Program Files\hello.txt");это вернет "привет" для имени файла.
string Location = "C:\Program Files\hello.txt"; string FileName = Location.Substring(Location.LastIndexOf('\') + 1);
попробуйте это,
string FilePath=@"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 - <userSettings> <ConsoleApplication13.Properties.Settings> <setting name="Filelocation" serializeAs="String"> <value>D:\DeleteFileTest</value> </setting> </ConsoleApplication13.Properties.Settings> </userSettings>
Comments