Obtenha o caminho executável em C#
-
Obtenha o caminho executável com a classe
Assembly
emC#
-
Obtenha o caminho executável com a classe
AppDomain
emC#
-
Obtenha o caminho executável com a classe
Path
emC#
Este tutorial irá apresentar os métodos para obter o caminho executável de nosso código em C#.
Obtenha o caminho executável com a classe Assembly
em C#
A classe Assembly
representa um assembly que é um bloco de construção reutilizável de um aplicativo CLR de runtime de linguagem comum em C#. A função Assembly.GetEntryAssembly()
é usada para obter a montagem do código atualmente em execução. Podemos obter o caminho do código atualmente em execução com a propriedade Assembly.GetEntryAssembly().Location
que retorna o caminho executável do atual em uma variável de string. Veja o seguinte exemplo de código.
using System;
using System.IO;
using System.Reflection;
namespace executable_path {
class Program {
static void Main(string[] args) {
string execPath = Assembly.GetEntryAssembly().Location;
Console.WriteLine(execPath);
}
}
}
Resultado:
C :\Debug\destroy object.exe
No código acima, exibimos o caminho do executável do nosso código atual com a classe Assembly
em C#. Armazenamos o valor retornado pela propriedade Assembly.GetEntryAssembly().Location
dentro da variável de string execPath
e o exibimos para o usuário.
Obtenha o caminho executável com a classe AppDomain
em C#
O método acima nos fornece o caminho junto com o nome do arquivo executável. Se quisermos obter o nome do diretório sem o nome do arquivo executável, podemos usar a classe AppDomain
em C#. A classe AppDomain
representa um domínio de aplicativo. Um domínio de aplicativo é um ambiente isolado onde os aplicativos são executados. A propriedade AppDomain.CurrentDomain
obtém o domínio do aplicativo atual. Podemos obter o caminho executável com a propriedade AppDomain.CurrentDomain.BaseDirectory
, que retorna o caminho do diretório contendo o arquivo executável do arquivo de código atual em uma variável de string. O exemplo de código a seguir nos mostra como podemos obter o caminho executável do nosso código atual com a classe AppDomain
em C#.
using System;
using System.IO;
using System.Reflection;
namespace executable_path {
class Program {
static void Main(string[] args) {
string execPath = AppDomain.CurrentDomain.BaseDirectory;
Console.WriteLine(execPath);
}
}
}
Resultado:
C :\Debug\
No código acima, exibimos o caminho executável do nosso código atual com a classe AppDomain
em C#. Armazenamos o valor retornado pela propriedade AppDomain.CurrentDomain.BaseDirectory
dentro da variável de string execPath
e o exibimos para o usuário. Essa abordagem é recomendada porque é a mais fácil e requer menos código do que as outras duas abordagens.
Obtenha o caminho executável com a classe Path
em C#
A classe Path
executa várias operações em strings contendo caminhos de arquivo em C#. A função Path.GetDirectoryName()
pode obter informações do diretório especificado pelo caminho. Podemos usar a propriedade System.Reflection.Assembly.GetExecutingAssembly().CodeBase
como um argumento da função Path.GetDirectoryName()
para obter o nome do diretório que contém o código atual. Veja o seguinte exemplo de código.
using System;
using System.IO;
using System.Reflection;
namespace executable_path {
class Program {
static void Main(string[] args) {
string execPath =
Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().CodeBase);
Console.WriteLine(execPath);
}
}
}
Resultado:
file :\C :\Users\Maisam\source\repos\executable path\executable path\bin\Debug
No código acima, exibimos o caminho executável do nosso código atual com a classe Path
em C#. Armazenamos o valor retornado pela função Path.GetDirectoryName()
dentro da variável de string execPath
e o exibimos para o usuário. Esta abordagem retorna o caminho com a string file:\
no início do caminho. Essa abordagem não é recomendada porque requer mais código do que as duas abordagens anteriores.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn