Get Current Directory while running as WindowsService

By admin - Last updated: Monday, September 8, 2008 - Save & Share - One Comment

During development, while you run the application as a console application or windows form application, often the code needs to load a specific file within the same folder of the exe assembly resides. The file can be located by using the file name directory since the default location will be the exe’s directory.
For instance,

File.Exists("myfile.xml");

However, it is a different story if you run the application as a WindowsService. In order to resolve the excuting assembly directory path, the code needs to do a bit extra work.

Console.WriteLine(Assembly.GetExecutingAssembly().Location) ;

result: “C:\FolderName\RunMe.exe”

Console.WriteLine(    Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location ) );

result: “C:\FolderName”

So , load the specifc file “myfile.xml”

File.ReadAllText(    Path.GetDirectoryName(              Assembly.GetExecutingAssembly().Location  + @"\myfile.xml" ));
Posted in Code Notes • Tags: , , , Top Of Page

One Response to “Get Current Directory while running as WindowsService”

Comment from Eric Duncan
Time July 31, 2009 at 2:35 pm

Perfect, thank you. Was needing that tonight for a new service.

Write a comment

CAPTCHA image