Come ottenere il percorso dell’app (senza app.exe)?

Voglio ottenere il percorso della mia app come: “\\ ProgramFiles \\ myApp”, provo ad usare il seguente codice:

string path = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase; 

Ma restituisce un percorso che ha “\\ myapp.exe” alla fine.

Ho anche provato:

 string path = System.IO.Directory.GetCurrentDirectory(); 

Ma lancia una “NotSupportedException”.

C’è un modo per ottenere un percorso senza .exe alla fine?

 path = System.IO.Path.GetDirectoryName( path ); 

Application.StartupPath dovrebbe farlo per te.

Aggiornamento: da te modifica vedo che stai lavorando su Compact Framework. Quindi Application.StartupPath non funzionerà. Questo è il costrutto che uso di solito allora:

 private static string GetApplicationPath() { return System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase); } 

Più semplice del resto:

 using System.IO; using System.Reflection; ... var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) 

È ansible utilizzare il metodo Path.GetDirectoryName (string) passando la stringa del percorso originale come parametro per questo. Che problema stai cercando di risolvere? Forse hai davvero bisogno di qualcosa come la directory di lavoro?

 Path.GetFileNameWithoutExtension(path); 

Se è un exe come nel tuo caso usa:

  // Summary: // Gets the path for the executable file that started the // application, not including the executable name. Application.StartupPath 

Che dire dell’utilizzo di un object FileInfo per estrarre il nome della directory?

In Vb.Net:

 fi = New FileInfo(System.Reflection.Assembly.GetExecutingAssembly.Location) path = fi.DirectoryName