Gå til innhold

Hvordan få komplett app.path? (VB.NET)


Anbefalte innlegg

Videoannonse
Annonse
Skrevet

Winforms:

Application.ExecutablePath

 

For console app er det eneste jeg har funnet ut av å bruke Reflection for å hente location til assemblien som en klasse ligger i...

 

class Program

{

static void Main( string[] args )

{

Console.WriteLine( System.Reflection.Assembly.GetAssembly(typeof(Program)).Location );

Console.ReadKey();

}

}

 

Noen som har noe forslag på bedre måter for console applikasjoner?

Skrevet
Er du ute etter "Application.StartupPath"?

7005052[/snapback]

 

Application.StartupPath er vel hvor den blir startet fra? F.eks:

 

c:\> d:\mittprog\prog.exe

vil gi: c:\

 

Application.ExecutablePath:

c:\> d:\mittprog\prog.exe

vil gi: d:\mittprog\prog.exe

Skrevet

Ah, så lærte jeg noe i dag også. Har ikke vært nøye på å skille mellom dem.

 

Fungerer iallfall fint på Windows-programmer med snarveier... ;)

Skrevet (endret)
Ah, så lærte jeg noe i dag også. Har ikke vært nøye på å skille mellom dem.

 

Fungerer iallfall fint på Windows-programmer med snarveier... ;)

7005203[/snapback]

 

Ja, det fungerer ofte. Men ofte != alltid ;) Jeg lager innimellom snarveier eller batch-filer for å starte programmer hvor de blir startet fra en annen katalog enn det .exe filen ligger i.

 

F.eks. programmer som tar parametere for å åpne filer:

teksteditor.exe ligger i %path%:

 

C:\> teksteditor.exe autoexec.bat

autoexec.bat ligger i Application.StartupPath

men "teksteditor.config" ligger i samme katalog som Application.ExecutablePath.

Endret av jorn79
Skrevet
System.Environment.CurrentDirectory? returnerer full path til der programmet ble startet.

7006165[/snapback]

 

Ikke helt...

 

Environment.CurrentDirectory Property

Gets or sets the fully qualified path of the current working directory.

7006192[/snapback]

 

I begynnelsen stemmer det ja. Men den kan forandre seg underveis i programmet :)

"Der programmet ble startet" fra eksempel igjen:

 

c:\> p:\tull\ting.exe

CurrentDirectory == c:\

Skrevet

System.Windows.Forms.Application.StartupPath gir tilbake mappen der exe fila ble startet fra

Application.StartupPath Property

 

Gets the path for the executable file that started the application, not including the executable name.

 

"C:\Dev\Projects\Et Prosjekt\Bin\Debug\Et Prosjekt.exe" ->

"C:\Dev\Projects\Et Prosjekt\Bin\Debug"

Men hvis programmet ligger i C:\ så er det en backslash på slutten, dette må en huske på, derfor bruker jeg en funksjon på en linje som gir tilbake path + "\"

public string QualifiedPath(string path)
{ return (path.EndsWidth(@"\") ? path : path + @"\"); }

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...