If you want to find files in the same directory as your application, AppDomain.CurrentDomain.BaseDirectory is the correct choice.
Environment.CurrentDirectory is a value that can and will change throught the course of running your application. For instance, using default parameters, the OpenFileDialog in WinForms will change this value to the directory where the file was selected from.
AppDomain.CurrentDomain.BaseDirectory returns the directory from where the current application domain was loaded. System.Environment.CurrentDirectory returns the current system directory.
In your case AppDomain.CurrentDomain.BaseDirectory is the best solution.
In Visual studio 2010 test projects, if you enable deployment option of Edit test settings, AppDomain.CurrentDomain.BaseDirectory points to the TestResults\Out folder(not bin\debug).
Although, default setting point to bin\debug folder.
You should use AppDomain.CurrentDomain.BaseDirectory.
For example in a windows services application:
System.Environment.CurrentDirectory will return C:\Windows\system32
While
AppDomain.CurrentDomain.BaseDirectory will return [Application.exe location]
Another important factor to note is that AppDomain.CurrentDomain.BaseDirectory is a readonly property while the Environment.CurrentDirectory can be something else if necessary:
// Change the directory to AppDomain.CurrentDomain.BaseDirectory
Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory;