Fórum Ajuda com FTP e Pastas e SubPastas #336542
21/01/2007
0
por favor eu achei esse codigo no Clube ele é quase o que eu preciso só que não esotu conseguindo ajustar ele....
o que ocorre:
eu tenho de baixar via FTP arquivos Pastas e SubPastas
Exemplo:
project.exe
V 7.1.22.ver
Diretóorio/SubDiretório/Arquivo.txt
Diretóorio/SubDiretório/Arquivo2.txt
esse código baixa mas não vem tudo de uma vez e se vem as subpastas ficam fora da pasta raiz dela
Exemplo:
project.exe
V 7.1.22.ver
Diretóorio/
SubDiretório/
Arquivo.txt
Arquivo2.txt
por favor alguém pode me dar um help nesse código ou me mostrar outro que funcione.....
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, IdBaseComponent, IdComponent,IdTCPConnection, IdTCPClient, IdFTP, ComCtrls,IdIntercept,IdAntiFreezeBase, IdAntiFreeze, IdLogBase, IdLogDebug, IdGlobal, IdLogEvent, IdFTPCommon, IdFTPList, Buttons; type TForm1 = class(TForm) btnListar: TButton; IdFTP1: TIdFTP; btnConectar: TButton; btnDesconectar: TButton; ListDiretorios: TListBox; procedure btnListarClick(Sender: TObject); procedure ListarDir; procedure btnConectarClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnDesconectarClick(Sender: TObject); private procedure Listar(dir: string); { Private declarations } public { Public declarations } end; var Form1: TForm1; i : integer; NomePastaBase,PastaBase,Diretorio, Dir: String; Valores : TStrings; implementation {$R *.dfm} procedure TForm1.ListarDir; begin i := 0; with IdFTP1 do begin List(nil); while i < DirectoryListing.Count do begin if DirectoryListing.Items[i].ItemType <> ditDirectory then Get(DirectoryListing.Items[i].FileName, dir+DirectoryListing.Items[i].FileName, true) else begin NomePastaBase:= copy(RetrieveCurrentDir,length(PastaBase)+1,length(RetrieveCurrentDir)); ListDiretorios.Items.Add(NomePastaBase+´/´+DirectoryListing.Items[i].FileName); if not DirectoryExists(dir+DirectoryListing.Items[i].FileName) then ForceDirectories(dir+DirectoryListing.Items[i].FileName); end; i := i+1; end; while ListDiretorios.Items.Count - 1 >= 0 do begin ChangeDir(PastaBase+ListDiretorios.Items[0]); Diretorio := ListDiretorios.Items[0]+´/´; ListDiretorios.Items.Delete(0); listar(Diretorio); end; end; end; procedure TForm1.Listar(dir : string); begin with IdFTP1 do begin List(nil); while i < DirectoryListing.Count do begin if DirectoryListing.Items[i].ItemType <> ditDirectory then begin Get(IdFTP1.DirectoryListing.Items[i].FileName, dir+dir+DirectoryListing.Items[i].FileName, true); end else begin NomePastaBase:= copy(RetrieveCurrentDir,length(PastaBase)+1,length(RetrieveCurrentDir)); ListDiretorios.Items.Add(NomePastaBase+´/´+DirectoryListing.Items[i].FileName); if not DirectoryExists(dir+DirectoryListing.Items[i].FileName) then ForceDirectories(dir+DirectoryListing.Items[i].FileName) end; i := i+1; end; end; end; procedure TForm1.btnListarClick(Sender: TObject); begin ListarDir(); Showmessage(´Transferência Concluída´); end; procedure TForm1.btnConectarClick(Sender: TObject); begin with IdFTP1 do begin Host := (´ftp.netcrc.ddns.com.br´); Username := (´teste´); Password := (´teste´); Passive := True; Connect(true); PastaBase := RetrieveCurrentDir; end; btnListar.Enabled := true; btnConectar.Enabled := false; btnDesconectar.Enabled := true; end; procedure TForm1.FormCreate(Sender: TObject); begin Dir:=(´C:\ftp\´); end; procedure TForm1.btnDesconectarClick(Sender: TObject); begin with IdFTP1 do begin Disconnect(); end; btnListar.Enabled := false; btnConectar.Enabled := true; btnDesconectar.Enabled := false; end; end. |
o que ocorre:
eu tenho de baixar via FTP arquivos Pastas e SubPastas
Exemplo:
project.exe
V 7.1.22.ver
Diretóorio/SubDiretório/Arquivo.txt
Diretóorio/SubDiretório/Arquivo2.txt
esse código baixa mas não vem tudo de uma vez e se vem as subpastas ficam fora da pasta raiz dela
Exemplo:
project.exe
V 7.1.22.ver
Diretóorio/
SubDiretório/
Arquivo.txt
Arquivo2.txt
por favor alguém pode me dar um help nesse código ou me mostrar outro que funcione.....

Crcam
Curtir tópico
+ 0
Responder
Posts
29/01/2007
Mmoreira
Pessoal,
Tambem estou tendo este problema.
Preciso fazer o download de todos os arquivos, pastas e subpastas que estiver no meu FTP.
Andei procurando e parece que o Indy 10 não faz isso por ele mesmo, no caso teria que fazer um procedure recursiva para varer pasta por pasta.
Tem uma procedure que encontrei aqui mesmo no forum que varre pastas e subpastas de um diretorio informado mas a mesma tecnica nao da pra ser implementada usando o IdFTP.
Alguem ja fez isso ???
Fico ai no aguardo.
T+
Tambem estou tendo este problema.
Preciso fazer o download de todos os arquivos, pastas e subpastas que estiver no meu FTP.
Andei procurando e parece que o Indy 10 não faz isso por ele mesmo, no caso teria que fazer um procedure recursiva para varer pasta por pasta.
Tem uma procedure que encontrei aqui mesmo no forum que varre pastas e subpastas de um diretorio informado mas a mesma tecnica nao da pra ser implementada usando o IdFTP.
Alguem ja fez isso ???
Fico ai no aguardo.
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)