Pular para o conteúdo principal

Descobrir tipo do Arquivo (Delphi)

Segue um exemplo de como verificar o tipo de um determinado arquivo, digita-se o nome do arquivo juntamente com o caminho no Edit1, e ao clicar no botão o Edit2 recebe o tipo do arquivo:

Function TipoArquivo(const p_File: String): String;
var
v_Inf: TSHFileInfo;

begin
IF SHGetFileInfo(PChar(p_File),0,v_Inf,Sizeof(v_Inf),SHGFI_TYPENAME) <> 0 THEN
Result := StrPas(v_Inf.szTypeName)
ELSE
BEGIN
Result := ExtractFileExt(p_File);
Delete(Result,1,1);
Result := Result +' File';
END;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Edit2.Text := TipoArquivo(Edit1.Text);
end;

Baixe o exemplo aqui.

Comentários

  1. v_Inf: TSHFileInfo;

    Não funciona. ¬¬'

    ResponderExcluir
  2. Olá Eduardo, basta você declarar a unit ShellAPI... abraços...

    ResponderExcluir
  3. Tem como identificar o tamanho do arquivo ou da pasta com esses tipos de código ?

    ResponderExcluir
  4. Opa, dê uma olhada nesse artigo:

    http://programero.blogspot.com/2009/06/verificar-tamanho-de-arquivo-delphi.html

    ResponderExcluir
  5. Olá.

    Esse exemplo é quase o que estou precisando.
    Na verdade preciso identificar que tipo de arquivo ele é, independente da extensão informada.

    ResponderExcluir
  6. Desculpem mas essa dica é não foi boa.
    Voce não ta dizendo tipo do arquivo.
    Voce só ta dando um copy loco e pegando a extensão do mesmo.

    O windows tem uma classificação generica, que aparece na tela de propriedades. Aquilo sim é tipo... pega e mostra...

    Mostrem ai!!! :)

    ResponderExcluir
  7. Retiro o que eu disse... :)

    ResponderExcluir

Postar um comentário

Obrigado por Participar do programero, fique a vontade para agradecer, retificar, perguntar ou sugerir.

Mais visitadas

Aplicação Flask usando Nginx e Gunicorn

Aplicação Flask usando Nginx e Gunicorn Se você já desenvolveu uma aplicação Flask básica, sabe que o servidor de desenvolvimento embutido não é ideal para produção. Ele não é projetado para lidar com altos volumes de tráfego ou conexões simultâneas. Para tornar sua aplicação Flask mais robusta e pronta para produção, podemos usar o Gunicorn como servidor de aplicação e o Nginx como proxy reverso. Neste artigo, vamos adaptar o exemplo anterior ( Criando uma Aplicação CRUD com Flask, PostgreSQL e Docker ) para incluir o Nginx e o Gunicorn. O que são Nginx e Gunicorn? Gunicorn O Gunicorn (Green Unicorn) é um servidor de aplicação WSGI que roda aplicações Python como o Flask. Ele é eficiente e simples de configurar, lidando com múltiplas requisições ao mesmo tempo, algo que o servidor embutido do Flask não faz bem. Nginx O Nginx é um servidor web que atua como um proxy reverso. Ele recebe requisições HTTP e as encaminha ao Gunicorn. Além disso, o Nginx pode: Servir arquivos ...

Funções de Data e Hora (Delphi)

É muito comum nos depararmos no dia a dia com a necessidade de manipular datas e horas, seja para um calculo de permanência, dias de atraso enfim, é praticamente escapar de alguma situação que necessite desse tipo de controle. Assim como a necessidade e se utilizar algum recurso para manipular as datas e horas de alguma maneira e freqüente, as duvidas de como o faze-lo também é, basta um breve olhar em qualquer fórum especializado e lá está, alguma duvida relacionada, por isso decidi falar um pouco sobre uma unit muito poderosa chamada DateUtils para a manipulação de data e hora, com um grande numero de métodos e classes que facilitam a vida de qualquer um. Alguns exemplos: CompareDate(constA, B: TDateTime): TValueRelationship; Compara apenas a data de dois valores (do tipo TDateTime) retornando: LessThanValue O primeiro valor é menor que o segundo EqualsValue Os valores são iguais GreaterThanValue O primeiro valor é maior que o segundo CompareDateTime(const A, B: TD...

Listar arquivos existentes em diretório (Delphi)

Mostraremos uma maneira simples e prática para listar o conteúdo de um diretório com a opção de incluir nessa listagem os arquivos de seus subdiretórios. No exemplo abaixo temos um Edit para receber o diretório a ser pesquisado um CheckBox para indicar se os subdiretórios entrarão na pesquisa um botão para efetuar a pesquisa e um Memo para listar os arquivos encontrados, no final um Edit que receberá o cálculo final (em bytes) da soma do tamanho dos arquivos. procedure TForm1.Button1Click(Sender: TObject); begin   tamanhoTotal := 0;   memLista.Lines.Clear;   ListarArquivos(edtDiretorio.Text, chkSub.Checked);   Edit1.Text := IntToStr( tamanhoTotal ); end; procedure TForm1.ListarArquivos(Diretorio: string; Sub:Boolean); var   F: TSearchRec;   Ret: Integer;   TempNome: string; begin   Ret := FindFirst(Diretorio+'\*.*', faAnyFile, F);   try     while Ret = 0 do ...