Artigo Clube Delphi Edição 9 - Copiando no padrão Windows

Artigo da Revista Clube Delphi Edição 9.

Esse artigo faz parte da revista Clube Delphi edição 9. Clique aqui para ler todos os artigos desta edição



Atenção: por essa edição ser muito antiga não há arquivo PDF para download. Os artigos dessa edição estão disponíveis somente através do formato HTML.


Copiando no padrão Windows

Utilizando a caixa de diálogo do Windows para cópia

 

Dentro do conceito de reapro-veitar as funcões que as API's disponibilizam, um dos recursos fascinantes do Windows e o diálogo que aparece quando se copia arquivos. Imaginem o trabalho para fazer algo similar; teriamos que utilizar componentes VCL como Tanimation, TprogressBar, Tlabel e Tbutton, além de criar um algoritmo complexo para permitir máscaras, e se a cópia for para unidades de disco flexível, solicitar outro disco após preencher o primeiro. Analisaram o desafio? Prefiro apenas agradecer pelo fato de possuirmos todas estas funcionalidades prontas atraves da unit ShellAPI.

Então vamos aprender a copiar arquivos usando o Shell do Windows:

Nota do Autor: Inclua na seção uses ShellApi, caso contrário o compilador desconhecerá os tipos utilizados.

 

Var

Dados: TSHFileOpStruct;

begin

FillChar(Dados,SizeOf(Dados),0);

with Dados do

begin

wFunc := FO_COPY;

pFrom := PChar('c:\Fabio\*.txt');

pTo := PChar('a:\');

fFlags:= FOF_ALLOWUNDO;

end;

SHFileOperation(Dados);

end;

Infelizmente, registro como é difícil conseguir documentacão sobre as funcões contidas na unit ShellAPI. Que a Corel / Inprise viabilize maiores informações sobre este assunto.

Deduzimos que TSHFile OpStruct é um tipo record com os seguintes campos:

 

wFunc Parâmetro da tarefa a ser realizada;

pFromParâmetro com o path de origem;

pTo Parâmetro com o path de destino;

fFlags Parâmetro com opcões adcionais.

SHFileOperation Realiza a tarefa de copiar os arquivos contidos em dados .pFrom para dados .pTo.

Esta forma de copiar arquivos oferecem três vantagens básicas:

 

1) O Shell avisa para pôr um próximo disco quando o atual estiver cheio.

 

2) Mostra a barra de progresso.

 

3) Pode copiar arquivos usando máscara de uma forma extremamente simples.

Até nosso próximo encontro e que os especialistas em C e C++ nos auxiliem cada vez mais para utilizarmos as funcões da misteriosa unit ShellAPI.

Artigos relacionados