How can I find the current directory for a .NET application running under the Visual Studio debugger?
Update 1. To be clear: I don\'t want to change
The best way is to run the application in WinDbg (the Windows debugger), then attach to the process and run the !handle command. Each open file will have an associated handle. By dumping all the handles for the corresponding process, you will see the corresponding file path.
Here is an example:
!handle 0 f process-id
Replace the process-id with the value of your process id. In place of the process id you can also use the process address. If this does not show the file object, then file handle has already been closed. In this case you need to trace the handles. This can be done with the !htrace command.
Within your code, call the function
System.IO.Directory.GetCurrentDirectory()
By default, unless you've changed the Debug properties of your project, the current directory will start as the bin\Debug directory of your project (where the .exe runs from).
In Visual Studio, under the project's settings in the debug tab, you can set the "Working Directory" if you want.
To determine the current working directory in code or in the immediate window in a breakpoint, try
System.IO.Directory.GetCurrentDirectory()