Ir ao topo

Tecnobyte

Logomarca da Tecnobyte
Contato por WhatsApp

WhatsApp

(69) 3421-6756

Contato por Telefone

(69) 3421-6756

(69) 3421-6757

Enviar mensagem

Enviar

mensagem

Contato por Facebook

Facebook

Vídeos

Vídeos

Atendimento de segunda a sexta, das 08h00 às 19h00 (horário de Brasília).

ÚLTIMOS DIAS PARA ECONOMIZAR!

Adquirindo uma licença anual do Tecnobyte SAC Lite, Tecnobyte SAC Plus ou Tecnobyte SAC Pro até 31/12/2024, você economiza 14,69% em relação ao novo valor mensal, pois evita o reajuste e ainda mantém os 10% de desconto da anuidade.

Tempo restante:

Delphi - Arquivos, Diretórios e Discos

Como criar um sub-diretório no diretório do arquivo executável (exe)?

Problema

Gostaria de criar um sub-diretório dentro do diretório onde se encontra o arquivo executável (exe) de minha aplicação. Como fazer?

Solução

Primeiramente vamos conhecer algumas funções do Delphi que usaremos:

  • ParamStr(Indice): Retorna valores passados na linha de comando quando executamos o programa. Se o valor de Indice for 0 (zero) será retornado o endereço completo (path) do arquivo executável (exe).
  • ExtractFilePath(Arquivo): Retorna o endereço do diretório onde está o arquivo informado.
  • DirectoryExists(Pasta): Retorna True se o diretório informado existe e False em caso contrário.
  • CreateDir(Pasta): Tenta criar o diretório informado. Se conseguir, retorna True. Caso contrário retorna False.

Agora que sabemos como trabalham estas funções, vamos escrever uma função que cria um sub-diretório conforme proposto.

Inclua na seção uses: FileCtrl, SysUtils

function CriaSubDir(const NomeSubDir: string): boolean;
var
  Caminho: string;
begin
  Caminho := ExtractFilePath(ParamStr(0)) + NomeSubDir;
  if DirectoryExists(Caminho) then
    Result := true
  else
    Result := CreateDir(Caminho);
end;

Exemplo de uso

A função acima pode ser chamada no evento OnCreate do formulário principal da aplicação, conforme exemplo a seguir.

Inclua na seção uses: Dialogs

procedure TForm1.FormCreate(Sender: TObject);
begin
  if not CriaSubDir('MeuSubDir') then
    ShowMessage('Não foi possível criar o sub-diretório MeuSubDir.');
end;

O conteúdo desta página pode ajudar alguém? Compartilhe!