HOWTO · Csharp
Obtenir le nom du fichier à partir du chemin en C#
Cet article explique comment extraire le nom de fichier d'un chemin donné en C#. Il inclut la méthode GetFileName().
Sur cette page
Pour récupérer le dernier composant d’un chemin de système de fichiers en C#, utilisez Path.GetFileName de System.IO. La méthode renvoie le nom du fichier avec son extension : il n’est donc pas nécessaire de découper le chemin manuellement. Elle extrait du texte à partir d’une chaîne de chemin, sans ouvrir ni vérifier le fichier.
Utiliser Path.GetFileName pour obtenir le dernier composant du chemin
Transmettez la chaîne de chemin à Path.GetFileName. Le résultat est le dernier composant situé après le séparateur de répertoire reconnu par le système d’exploitation actuel. Pour un chemin qui se termine par summary.csv, le nom renvoyé est summary.csv.
Exécutez cet exemple :
Le code et les libellés ou sorties affichés dans cette section restent en anglais.
using System;
using System.IO;
class Program
{
static void Main()
{
string path = "reports/2026/summary.csv";
string fileName = Path.GetFileName(path);
Console.WriteLine(fileName);
}
}
summary.csv
Ce programme écrit le nom extrait dans la console. Le code est autonome et utilise un chemin avec des barres obliques, reconnues comme séparateurs de répertoire sur les principales plateformes .NET.
Gérer les chemins absolus, relatifs et spécifiques à la plateforme
La méthode fonctionne avec les chemins de système de fichiers absolus et relatifs. Un chemin absolu indique son emplacement à partir d’une racine ou d’un lecteur ; un chemin relatif est interprété depuis le répertoire de travail de l’application. Path.GetFileName ne résout aucun de ces chemins dans le système de fichiers : elle renvoie uniquement le dernier composant de la chaîne fournie.
L’interprétation des séparateurs suit les règles de Path propres à la plateforme. Un chemin avec des barres obliques, comme reports/summary.csv, fonctionne sous les systèmes Unix et Windows. Un chemin Windows avec des barres obliques inverses, comme C:\\Reports\\summary.csv, est interprété comme prévu sous Windows. Sous les systèmes Unix, une barre oblique inverse est un caractère ordinaire : un chemin au format Windows peut donc être renvoyé en entier, au lieu de renvoyer uniquement summary.csv. Si une application traite des chemins créés pour un autre système d’exploitation, gérez explicitement ce format au lieu de supposer que la plateforme hôte l’interprétera de la même manière.
Obtenir le nom du fichier sans son extension
Si l’appelant a besoin de summary plutôt que de summary.csv, utilisez Path.GetFileNameWithoutExtension. Cette méthode combine l’extraction du dernier composant et la suppression de l’extension finale. Par exemple, pour reports/summary.csv sur une plateforme qui reconnaît / comme séparateur, elle renvoie summary.
Utilisez cette API lorsque l’extension ne fait pas partie de la valeur à afficher ou à comparer. Si vous avez besoin de l’extension séparément, Path.GetExtension la renvoie avec le point initial. Ces méthodes agissent sur le texte du chemin et ne déterminent pas si un fichier existe.
Distinguer les chemins de fichiers des URL et de la validation des fichiers
Une URL n’est pas nécessairement un chemin de système de fichiers. Elle peut contenir un schéma, un hôte, une requête ou un fragment, et ses segments de chemin suivent les règles des URL. N’utilisez pas Path.GetFileName sur une URL pour remplacer son analyse : si l’entrée est une URL, utilisez un analyseur d’URI, puis traitez tout nom décodé selon les besoins de l’application.
L’extraction d’un nom ne valide pas non plus un chemin, ne garantit pas qu’il est sûr à utiliser et ne vérifie pas qu’un fichier existe. Ce sont des tâches distinctes. Utilisez les API adaptées de validation des chemins et du système de fichiers, et appliquez les règles de sécurité de l’application avant d’ouvrir ou de créer des fichiers. Pour obtenir uniquement le dernier composant d’une chaîne de chemin de système de fichiers, Path.GetFileName est l’API appropriée.