Jeg ønsker at oprette et program, der konverterer filer. Jeg vil gerne have, at brugeren kan placere den eksekverbare fil i en hvilken som helst mappe, og når programmet udføres (ved at dobbeltklikke på .exe-filen), skal programmet behandle alle filer i den aktuelle mappe, hvor exe-filen findes. Hvordan kan programmet bestemme, i hvilken sti det i øjeblikket udføres?
Jeg har prøvet System.Windows.Forms.Application.StartupPath
, men det ser ud til at være den forkerte måde.
Nogen ideer?
Du bør ikke bruge Directory.GetCurrentDirectory()
i dit tilfælde, da den aktuelle mappe kan være forskellig fra den mappe, der udføres, især når du udfører programmet via en genvej.
Det'er bedre at bruge Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
til dit formål. Dette returnerer det stinavn, hvor den aktuelt eksekverende samling befinder sig.
Mens min foreslåede fremgangsmåde giver dig mulighed for at skelne mellem den eksekverende samling, entry-samlingen eller enhver anden indlæst samling, som Soner Gönül sagde i sit svar,
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
kan også være tilstrækkeligt. Dette ville være lig med
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
Prøv dette:
Brug dette,
var currentDirectory = System.IO.Directory.GetCurrentDirectory();
Du kan også bruge dette.
var currentDirectory = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);