Получить имя файла из строки пути в 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();


это работает, но я считаю, что должно быть более короткое и умное решение для этого. Есть идеи?

390   9  
c#

9 ответов:

путь.GetFileName

путь.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 ''

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

можно использовать путь API следующим образом:

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

Подробнее: путь.GetFileNameWithoutExtension

var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(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

    Ничего не найдено.