Windows service - get current directory
68,708
Solution 1
Don't use Directory.GetCurrentDirectory()
. I had the same exact problem with C:\Windows\System32 being returned. Use this instead:
Path.GetDirectoryName(Application.ExecutablePath);
Solution 2
You can set the current directory to the directory that your service is running from by including this line in your code:
System.IO.Directory.SetCurrentDirectory(System.AppDomain.CurrentDomain.BaseDirectory);
The important part of this is:
System.AppDomain.CurrentDomain.BaseDirectory
That returns the path to the directory your service is running from.
Solution 3
Try this:
System.Reflection.Assembly.GetEntryAssembly().Location
Solution 4
Getting directory from full path:
var location = System.Reflection.Assembly.GetEntryAssembly().Location;
var directoryPath = Path.GetDirectoryName(location);
Quite a silly problem when comparing to writing a Windows service :)
Author by
MoShe
Updated on July 05, 2022Comments
-
MoShe about 2 years
I have a Windows service that should look for a configuration file in its current directory.
So I use
directory.getcurrentdirectiry()
but instead of the service directory I get backc:\windows\system32
Any idea why and how should I get the service directory?