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.NETDim sPath as String = "C:\Temp\" & nomefile
C#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.NETDim sPath as String = Path.Combine("C:\Temp",nomefile)
C#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.txtSe 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.