web-dev-qa-db-fra.com

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 " hello ". 

Le chemin est un extrait de chaîne de la base de données. Actuellement, j'utilise la méthode suivante (scinder le chemin par '\' puis le scinder à nouveau avec 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?

224
KMC
433
68
Yahia

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

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

26
Monday

Vous pouvez utiliser Path API comme suit:

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

Plus d'infos: Path.GetFileNameWithoutExtension

22
Peyman
var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(path);

Path.GetFileNameWithoutExtension

16
Holystream

Essaye ça:

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

Cela retournera "bonjour" pour nom_fichier.

9
Tim

Essaye ça,

string FilePath=@"C:\mydir\myfile.ext";
string Result=Path.GetFileName(FilePath);//With Extension
string Result=Path.GetFileNameWithoutExtension(FilePath);//Without Extension
6
Sumanth
string Location = "C:\\Program Files\\hello.txt";

string FileName = Location.Substring(Location.LastIndexOf('\\') +
    1);
6
raman
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>
1
Ritesh Yadav
string filepath = "C:\\Program Files\\example.txt";
FileVersionInfo myFileVersionInfo = FileVersionInfo.GetVersionInfo(filepath);
FileInfo fi = new FileInfo(filepath);
Console.WriteLine(fi.Name);

//input to the "fi" is a full path to the file from "filepath"
//This code will return the fileName from the given path

//output
//example.txt
0
Ganesh Kalidas