Hvordan kan jeg få programmets sti i et .NET-konsolprogram?

Hvordan finder jeg stien til programmet i et konsolprogram?

I Windows Forms kan jeg bruge Application.StartupPath til at finde den aktuelle sti, men dette synes ikke at være tilgængeligt i et konsolprogram.

Løsning

System.Reflection.Assembly.GetExecutingAssembly().Location1

Kombiner det med System.IO.Path.GetDirectoryName, hvis du kun vil have mappen.

1Som i Mr.Mindor's kommentar: System.Reflection.Assembly.GetExecutingAssembly().Location returnerer, hvor den eksekverende samling er placeret i øjeblikket, hvilket kan være eller ikke kan være det sted, hvor samlingen er placeret, når den ikke er ved at blive eksekveret. I tilfælde af skyggekopiering af assemblies får du en sti i en midlertidig mappe. System.Reflection.Assembly.GetExecutingAssembly().CodeBase returnerer den permanente sti for samlingen.

Kommentarer (18)

Du kan bruge følgende kode til at hente den aktuelle programmappe.

AppDomain.CurrentDomain.BaseDirectory
Kommentarer (6)

Det kan være, at du ønsker at gøre dette:

System.IO.Path.GetDirectoryName(
    System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase)
Kommentarer (0)