Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

Delphi_852

Copiar pasta

Mensagens Recomendadas

Delphi_852    0
Delphi_852

Boa Tarde,

Alguém poderia dar-me uma ideia de como fazer para copiar uma pasta completa, que pode conter ficheiros e subpastas, mostrando o progresso da cópia numa progressbar do delphi?

 

Obrigado,

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
M6    107
M6

Podes fazer isso contando os ficheiros e/ou o seu tamanho total e depois, quando copias, vais progredindo de acordo com o número de ficheiros ou KBs copiados (depende de como faças a cópia).

Pesquisa na API do Windows, é capaz de haver algo por lá que te dê o número de ficheiros e/ou o tamanho do que queres copiar recursivamente.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Kline777    97
Kline777

Podes usar esta função que fiz para devolver um TStringlist com a lista de ficheiros dentro de uma pasta

 

function ListFileDir(Path,Ext: string;OnlyTopFolder:boolean; var FileList: TStringList):boolean;
var
  SR: TSearchRec;
begin
  result:=false;
  if DirectoryExists(path) then
  Begin
    result:=true;
    if FindFirst(Path + '*'+Ext, faAnyFile, SR) = 0 then
    begin
      repeat
        FileList.Add(Path+SR.Name);
      until FindNext(SR) <> 0;
      FindClose(SR);
    end;

    if not OnlyTopFolder then
      if FindFirst(Path+'*' , faDirectory, SR) = 0 then
      begin
        repeat
          if (SR.Name<>'..') and (SR.Name<>'.') then
            ListFileDir(Path+SR.Name+'\',ext,OnlyTopFolder,FileList);
        until FindNext(SR) <> 0;
        FindClose(SR);
      end;
  end;
end;

 

Basicamente passas o caminho e extensão de ficheiros que queres e passas uma TStringList por referência.

Depois é uma questão de correres a TStringList a copiar os ficheiros e a mostrar numa TProgressBar

Editado por Kline777

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.