Home Page Home Page Tips & Tricks Cos'è e come funziona la classe Path ?

Cos'è e come funziona la classe Path ?


Lavorando con File e Directory è d'obbligo conoscere ed usare la classe Path, del Namespace che utilizziamo appunto per le operazioni di input/output ovvero il System.IO.

Molti non conoscono le potenzialità di questa classe che aiuta a recuperare il percorso di un file o directory, combinare due percorsi ecc.
Oltre che nell'aiutarci, aumenta anche le prestazioni, perché come si faceva prima dell'avvento di .NET, si usava il concatenamento delle stringhe (putroppo c’è chi lo fa ancora):

VB.NET
Codice .NET n°1
Dim sPath as String = "C:\Temp\" & nomefile



C#
Codice .NET n°2
String spath = @"C:\Temp\" + nomefile;


Per chi non lo sapesse questo metodo riduce di molto le prestazioni infatti, molti utilizzano o il metodo String.Format oppure lo StringBuilder che possono essere delle buone soluzioni.
Invece con la classe Path abbiamo un metodo molto comodo Path.Combine:


VB.NET
Codice .NET n°3
Dim sPath as String = Path.Combine("C:\Temp",nomefile)


C#
Codice .NET n°4
String spath = Path.Combine(@"C:\Temp",nomefile)


Come vedete, non è necessario neanche mettere il carattere di separazione "\"
Ancora meglio quando dobbiamo recuperare per esempio il nome del file

Esempio:
C:\Temp\Documenti\File.txt

Quindi per recuperare file.txt l'unico modo senza la classe Path è usare i metodi della classe String, ovvero SubString e IndexOf, dovendo anche preoccuparsi di contare bene i caratteri con elavata possibilità d'errore e quindi perdita di tempo.

Mentre con la classe Path ci basta usare il metodo:

Path.GetFileName("C:\Temp\Documenti\File.txt")

Questo metodo darà come ritorno il nome del file cioè File.txt

Se invece vogliamo solo l'estensione o solo il nome del file senza estesione, dobbiamo usare rispettivamente.

Path.GetExtension("C:\Temp\Documenti\File.txt") (ritorna txt)

Path.GetFileNameWithoutExtension("C:\Temp\Documenti\File.txt") (ritorna File)

Se invece vogliamo sapere il percorso della directory senza File:

Path.GetDirectoryName("C:\Temp\Documenti\File.txt") (ritorna C:\Temp\Documenti)

Altri due metodi molto comodi sono Path.GetFullPath che restituisce l'intero percorso e Path.GetTempPath che restituisce il percorso della cartella temporanea di sistema.

Ricordo che tutti i metodi della classe Path sono static (shared in VB.NET) quindi non è necessario istanziare la classe Path per poterli utilizzare.
Copyright © dotNetHell.it 2002-2020
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5