Obtenha o caminho executável em C#

Muhammad Maisam Abbas 16 fevereiro 2024
  1. Obtenha o caminho executável com a classe Assembly em C#
  2. Obtenha o caminho executável com a classe AppDomain em C#
  3. Obtenha o caminho executável com a classe Path em C#
Obtenha o caminho executável em C#

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.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Artigo relacionado - Csharp Path