Respostas:
Um método:
System.AppDomain.CurrentDomain.BaseDirectory
Outra maneira de fazer isso seria:
System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName)
Aqui está outro:
System.Reflection.Assembly.GetExecutingAssembly().Location
Você também pode usar o primeiro argumento dos argumentos da linha de comando:
String exePath = System.Environment.GetCommandLineArgs()[0]
Eu usei simplesmente string baseDir = Environment.CurrentDirectory;
e seu trabalho para mim.
Boa sorte
Editar:
Eu costumava excluir esse tipo de erro, mas prefiro editá-lo porque acho que o ponto negativo nesta resposta ajuda as pessoas a saber sobre o caminho errado. :) Entendi que a solução acima não é útil e mudei para string appBaseDir = System.AppDomain.CurrentDomain.BaseDirectory;
Outras maneiras de obtê-la são:
1. string baseDir =
System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
2. String exePath = System.Environment.GetCommandLineArgs()[0];
3. string appBaseDir = System.IO.Path.GetDirectoryName
(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName);
Boa sorte
String exePath = System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;
string dir = Path.GetDirectoryName(exePath);
Tente isso!
Eu tentei isso:
label1.Content = Directory.GetCurrentDirectory();
e obtenha também o diretório