venerdì 2 dicembre 2011

Percorso del file eseguibile di un programma .NET

Per ottenere il percorso del file eseguibile da cui è partita l'applicazione, il namespace System.Windows.Forms ci mette a disposizione il metodo statico Application.StartupPath.
Tuttavia se non vogliamo o non possiamo referenziare System.Windows.Forms, ad esempio, per ottenere il percorso in funzione di una dll referenziata nel progetto, allora possiamo usare il seguente metodo:
AppDomain.CurrentDomain.SetupInformation.ApplicationBase
Prestate molta attenzione se volete aprire un file che si trova nella stessa cartella dell'eseguibile, è buona norma che passiate al metodo il percorso e il nome del file Es.: File.Open(@"C:\Progetti\MiaApplicazione\test.txt"). Se usate solamente il nome file Es.: File.Open(@"test.txt") e per caso in precedenza avete usato una OpenFileDialog o SaveFileDialog per aprire o salvare un file il percorso in cui verrà cercato il vostro file text.txt sarà equivalente all'ultimo selezionato tramite questi controlli.

P.S: anche System.Environment.CurrentDirectory soffre dello stesso problema.