312 votes

Obtenir le nom du fichier d'une chaîne de chemin en C #

Je programme en WPF C #. J'ai par exemple le chemin suivant:

 C:\Program Files\hello.txt
 

et je veux sortir " bonjour " de celui-ci.

Le chemin est un extrait de chaîne de la base de données. Actuellement, j'utilise la méthode suivante (scindée du chemin par '\', puis scindée à nouveau par un '.'):

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

Cela fonctionne, mais j'estime qu'il devrait exister une solution plus courte et plus intelligente. Une idée?

582voto

104voto

Yahia Points 49011

36voto

Monday Points 949

essayer

 System.IO.Path.GetFileNameWithoutExtension(path); 
 

démo

 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 ''
 

http://msdn.microsoft.com/zh-cn/library/system.io.path.getfilenamewithoutextension%28v=vs.80%29.aspx

29voto

Peyman Points 1070

Vous pouvez utiliser l’API de chemin comme suit:

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

20voto

Holystream Points 702
 var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);
 

Path.GetFileNameWithoutExtension

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X