HOWTO · Csharp
Ottieni nome file dal percorso in C#
Questo articolo introduce come estrarre il nome del file da un determinato percorso in C#. Include il metodo GetFileName().
In questa pagina
Per ottenere l’ultimo componente di un percorso del file system in C#, usa Path.GetFileName di System.IO. Il metodo restituisce il nome del file insieme all’estensione, quindi non è necessario separare manualmente il percorso. Estrae il testo da una stringa contenente un percorso: non apre né controlla il file.
Usa Path.GetFileName per ottenere il componente finale del percorso
Passa la stringa del percorso a Path.GetFileName. Il risultato è il componente finale dopo il separatore di directory riconosciuto dal sistema operativo corrente. Se il percorso termina con summary.csv, il nome restituito è summary.csv.
Esegui questo esempio:
Il codice e le etichette o gli output visibili in questa sezione restano in inglese.
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
Il programma scrive nella console il nome estratto. Il codice è autonomo e usa un percorso con separatori /, riconosciuti come separatori di directory sulle piattaforme .NET più comuni.
Gestisci percorsi assoluti, relativi e specifici della piattaforma
Il metodo funziona sia con percorsi del file system assoluti sia con quelli relativi. Un percorso assoluto include la posizione a partire da una radice o da un’unità; un percorso relativo viene interpretato rispetto alla directory di lavoro dell’applicazione. Path.GetFileName non risolve il percorso nel file system: restituisce soltanto il componente finale della stringa fornita.
La gestione dei separatori segue le regole di Path specifiche della piattaforma. Un percorso con separatori /, come reports/summary.csv, funziona su sistemi Unix-like e Windows. Un percorso Windows con separatori \, come C:\Reports\summary.csv, viene interpretato come previsto su Windows. Sui sistemi Unix-like, la barra rovesciata è un carattere ordinario: passando un percorso nel formato Windows, il metodo potrebbe quindi restituire l’intera stringa anziché soltanto summary.csv. Se l’applicazione elabora percorsi creati per un altro sistema operativo, gestisci esplicitamente quel formato invece di presumere che la piattaforma corrente lo interpreti allo stesso modo.
Ottieni il nome del file senza estensione
Se serve summary invece di summary.csv, usa Path.GetFileNameWithoutExtension. Il metodo estrae lo stesso componente finale e rimuove l’ultima estensione. Per esempio, dato reports/summary.csv su una piattaforma che riconosce / come separatore, restituisce summary.
Usa questa API quando l’estensione non fa parte del valore da visualizzare o confrontare. Se ti serve l’estensione separatamente, Path.GetExtension la restituisce includendo il punto iniziale. Questi metodi operano sul testo del percorso e non determinano se un file esiste.
Distingui i percorsi dei file dagli URL e dalla verifica dei file
Un URL non è necessariamente un percorso del file system. Può contenere uno schema, un host, una query o un frammento, e i segmenti del percorso URL seguono regole proprie. Non passare un URL a Path.GetFileName al posto di analizzarlo come URL: se l’input è un URL, usa un parser URI e poi gestisci l’eventuale nome decodificato in base alle esigenze dell’applicazione.
Estrarre un nome non convalida un percorso, non dimostra che sia sicuro usarlo e non verifica che un file esista. Sono operazioni distinte. Usa le API appropriate per la convalida dei percorsi e per le operazioni sul file system, e applica le regole di sicurezza dell’applicazione prima di aprire o creare file. Per il compito più specifico di ottenere l’ultimo componente da una stringa contenente un percorso del file system, Path.GetFileName è l’API diretta.