Avatar billede celal Nybegynder
01. februar 2010 - 16:15 Der er 4 kommentarer og
1 løsning

64 Bit GetCurrentDirectory, viser ikke current direktory

Jeg er i gang med at lave et mindre C# console applikation som skal læse fra en fil, den fil som der bliver læst fra indeholder en sti som appliationen skal bruge for igen at læse en bestemt fil som ligger på en server.

Jeg bruger Directory.GetCurrentDirectory() + "\\sti.txt", som virker fint på en 32 bit maskine, men når man køre appliationen fra en 64 bit maskine (windows 7) så kan den ikke finde filen, og når jeg laver nogle brakpoints finder jeg ud af at Directory.GetCurrentDirectory() levere en lokal sti som slet ikke er currentDirectory. Nogen som har været ude for nogel lignende?
Avatar billede heder_01 Nybegynder
01. februar 2010 - 16:54 #1
Hejsa celal

Jeg har ikke udviklet på windows 7 maskiner, og har ikke noget miljø at teste på. Jeg ved dog at CurrentDirectory kan ændres runtime, så du kan ikke være sikker på at det er din installationsfolder.

Prøv evt.:
System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().CodeBase);

/Anders
Avatar billede celal Nybegynder
02. februar 2010 - 01:04 #2
Ok, nu får jeg følgende ud: "file:\c:\programmer\mappe\fil.txt" men den kan jeg ikke bruge direkte i en File.Exists()?

Hvordan får jeg kun fat i "c:\programmer\mappe\fil.txt"?
Avatar billede heder_01 Nybegynder
02. februar 2010 - 10:37 #3
Det prefixede 'file:\' er angivelse af protokollen, på lige fod med 'http://' som du kender fra din browser.

Jeg har lige testet det hurtigt, og File.Exists kan ikke forstå dette prefix. Men fjern den da bare 'manuelt' fra stien med noget substring gymnastik, så er du videre :)
Avatar billede celal Nybegynder
02. februar 2010 - 11:01 #4
Jeg har fundet ud af at jeg kan bruge:

System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);

Ved brug af GetEntryAssembly().Location får jeg hele stien uden file:
Avatar billede celal Nybegynder
08. april 2010 - 13:47 #5
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester