HOWTO · Csharp
Dateinamen aus dem Pfad in C# abrufen
In diesem Artikel wird erläutert, wie Sie den Dateinamen aus einem bestimmten Pfad in C# extrahieren. Es enthält die GetFileName()-Methode.
Auf dieser Seite
Um die letzte Komponente eines Dateisystempfads in C# abzurufen, verwenden Sie Path.GetFileName aus System.IO. Die Methode gibt den Dateinamen einschließlich Erweiterung zurück, sodass Sie den Pfad nicht selbst aufteilen müssen. Sie extrahiert Text aus einer Pfadzeichenfolge, öffnet die Datei jedoch nicht und prüft sie auch nicht.
Mit Path.GetFileName die letzte Pfadkomponente abrufen
Übergeben Sie die Pfadzeichenfolge an Path.GetFileName. Das Ergebnis ist die letzte Komponente nach dem Verzeichnistrennzeichen, das vom aktuellen Betriebssystem erkannt wird. Endet ein Pfad beispielsweise auf summary.csv, lautet der zurückgegebene Name summary.csv.
Führen Sie dieses Beispiel aus:
Der Code und die angezeigten Bezeichnungen oder Ausgaben in diesem Abschnitt bleiben auf Englisch.
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
Dieses Programm gibt den extrahierten Namen in der Konsole aus. Der Code ist eigenständig und verwendet einen Pfad mit Schrägstrichen, die auf gängigen .NET-Plattformen als Verzeichnistrennzeichen erkannt werden.
Absolute, relative und plattformspezifische Pfade verarbeiten
Die Methode funktioniert sowohl mit absoluten als auch mit relativen Dateisystempfaden. Ein absoluter Pfad gibt seinen Speicherort ausgehend von einem Stammverzeichnis oder Laufwerk an; ein relativer Pfad wird ausgehend vom Arbeitsverzeichnis der Anwendung interpretiert. Path.GetFileName löst keinen der beiden Pfade im Dateisystem auf, sondern gibt nur die letzte Komponente der übergebenen Zeichenfolge zurück.
Die Behandlung der Trennzeichen folgt den plattformspezifischen Regeln von Path. Ein Pfad mit Schrägstrichen wie reports/summary.csv funktioniert unter Unix-ähnlichen Systemen und Windows. Ein Windows-Pfad mit umgekehrten Schrägstrichen wie C:\Reports\summary.csv wird unter Windows wie beabsichtigt interpretiert. Unter Unix-ähnlichen Systemen ist ein umgekehrter Schrägstrich ein gewöhnliches Zeichen. Daher kann die Übergabe eines Pfads im Windows-Format dort die gesamte Zeichenfolge statt nur summary.csv zurückgeben. Verarbeitet eine Anwendung Pfade, die für ein anderes Betriebssystem erstellt wurden, berücksichtigen Sie dieses Format ausdrücklich, statt anzunehmen, dass das Hostbetriebssystem es auf dieselbe Weise interpretiert.
Den Dateinamen ohne Erweiterung abrufen
Wenn der Aufrufer summary statt summary.csv benötigt, verwenden Sie Path.GetFileNameWithoutExtension. Die Methode ruft die letzte Pfadkomponente ab und entfernt deren letzte Erweiterung. Für reports/summary.csv gibt sie beispielsweise summary zurück, sofern die Plattform / als Trennzeichen erkennt.
Verwenden Sie diese API, wenn die Erweiterung nicht zu dem Wert gehört, den Sie anzeigen oder vergleichen möchten. Benötigen Sie die Erweiterung separat, gibt Path.GetExtension sie einschließlich des vorangestellten Punkts zurück. Diese Methoden verarbeiten Pfadtext und stellen nicht fest, ob eine Datei vorhanden ist.
Dateipfade von URLs und Dateiüberprüfungen unterscheiden
Eine URL ist nicht unbedingt ein Dateisystempfad. Sie kann ein Schema, einen Host, eine Abfrage oder ein Fragment enthalten; für URL-Pfadsegmente gelten außerdem URL-Regeln. Verwenden Sie Path.GetFileName nicht für eine URL, als wäre es ein Ersatz für die URL-Analyse. Ist die Eingabe eine URL, verwenden Sie einen URI-Parser und behandeln Sie einen gegebenenfalls dekodierten Namen anschließend entsprechend den Anforderungen der Anwendung.
Einen Namen zu extrahieren bedeutet auch nicht, einen Pfad zu validieren, seine sichere Verwendbarkeit nachzuweisen oder zu prüfen, ob eine Datei vorhanden ist. Das sind getrennte Aufgaben. Verwenden Sie dafür die passenden Pfadvalidierungs- und Dateisystem-APIs und wenden Sie die Sicherheitsregeln der Anwendung an, bevor Sie Dateien öffnen oder erstellen. Für die engere Aufgabe, die letzte Komponente einer Dateisystem-Pfadzeichenfolge abzurufen, ist Path.GetFileName die passende API.