idFTP1 Upload de Pasta ?
Não estou conseguindo fazer o upload de uma pasta com o idFTP1
O que será que está acontecendo ?
Acho que o idFTP1 apenas faiz upload de Arquivos e n~çao de pastas
Alguém sabe o que deve ser feito ? :wink:
O que será que está acontecendo ?
Acho que o idFTP1 apenas faiz upload de Arquivos e n~çao de pastas
Alguém sabe o que deve ser feito ? :wink:
Warfighter
Curtidas 0
Respostas
Tiago Rizzon
04/02/2008
Amigo, estou meio na corrida agora, mas acredito que não é complicado criar uma rotina que:
1 - cria a pasta no servidor
2 - loop para enviar todos os arquivos via FTP (cópia)
Ou compactar a pasta e enviar como arquivo...
Se vc achar um método melhor blz, mas se não conseguir, posta aí novamente que te envio essa rotina q citei acima...
Abração! Boa sorte!
1 - cria a pasta no servidor
2 - loop para enviar todos os arquivos via FTP (cópia)
Ou compactar a pasta e enviar como arquivo...
Se vc achar um método melhor blz, mas se não conseguir, posta aí novamente que te envio essa rotina q citei acima...
Abração! Boa sorte!
GOSTEI 0
Warfighter
04/02/2008
[quote:483e2ff039=´Tiago Rizzon´]Amigo, estou meio na corrida agora, mas acredito que não é complicado criar uma rotina que:
1 - cria a pasta no servidor
2 - loop para enviar todos os arquivos via FTP (cópia)
Ou compactar a pasta e enviar como arquivo...
Se vc achar um método melhor blz, mas se não conseguir, posta aí novamente que te envio essa rotina q citei acima...
Abração! Boa sorte![/quote:483e2ff039]
Se puder me enviar a rotina de enviar todos o arquivos da pasta :wink: ?
Aguardo Respostas :wink:
1 - cria a pasta no servidor
2 - loop para enviar todos os arquivos via FTP (cópia)
Ou compactar a pasta e enviar como arquivo...
Se vc achar um método melhor blz, mas se não conseguir, posta aí novamente que te envio essa rotina q citei acima...
Abração! Boa sorte![/quote:483e2ff039]
Se puder me enviar a rotina de enviar todos o arquivos da pasta :wink: ?
Aguardo Respostas :wink:
GOSTEI 0
Tiago Rizzon
04/02/2008
Oi! Chego em casa às 22h, aí, em seguida posto o código por aqui...
Abração
;-)
Abração
;-)
GOSTEI 0
Warfighter
04/02/2008
[quote:3bfb55d111=´Tiago Rizzon´]Oi! Chego em casa às 22h, aí, em seguida posto o código por aqui...
Abração
;-)[/quote:3bfb55d111]
Blz :wink:
Qualquer coisa alguém souber posta ae :D
Abração
;-)[/quote:3bfb55d111]
Blz :wink:
Qualquer coisa alguém souber posta ae :D
GOSTEI 0
Tiago Rizzon
04/02/2008
procedure TForm1.Envia_Pasta(caminhoPasta, nomePasta: String);
var
A: Integer;
Lista: TStringList;
begin
{aconselho q vc aqui, nesta linha, extraia o nome da pasta do parâmetro ´caminhoPasta´, assim não é necessário
chamar essa procedure passando 2 parâmetros... o parâmetro ´nomePasta´ vc usaria como variável apenas desta procedure,
no entanto, se vc quiser alterar o nome da pasta no provedor, não altera!}
Lista := TStringList.Create;
if caminhoPasta[Length(caminhoPasta)] <> ´\´ then caminhoPasta := caminhoPasta + ´\´;
IdFTP1.Connect(True, -1);
if not PastaExiste(nomePasta) then IdFTP1.MakeDir(nomePasta); {se a pasta já ñ existe, cria}
IdFTP1.ChangeDir(nomePasta); {entra na pasta para enviar os arquivos}
Lista.AddStrings(ArquivosDaPasta(caminhoPasta, ´*.jpg´, False)); {se quiser pode usar filtro, ou não!}
showmessage(inttostr(lista.count));
for A := 0 to Lista.Count -1 do IdFTP1.Put(caminhoPasta + Lista.Strings[A], Lista.Strings[A], True);
IdFTP1.Disconnect;
{coloca um indicador dentro de progresso dentro do loop ou no evento onWork da IdFTP1}
{Acima, é necessário vc criar a função PastaExiste - uso a mesma para arquivos, só não postei pq fiz de qualquer
maienra, acredito q vc possa utilizar alguma melhor...}
{A função ArquivosDaPasta, que usei acima serve apenas para jogar na Lista(TListBox) os arquivos da pasta a enviar
essa função retorna os arquivos da pasta e está nas dicas do site}
{Nota: essa procedure não envia subpastas e está sem tratamento de exceção, ou seja, vc precisa melhorá-la
{Utilizo Delphi 7 e Indy 9, funcionou sem problemas, espero q ajude!}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Envia_Pasta(´C:\Documents and Settings\Administrador\Desktop\ImagensA´, ´ImagensA´);
end;
var
A: Integer;
Lista: TStringList;
begin
{aconselho q vc aqui, nesta linha, extraia o nome da pasta do parâmetro ´caminhoPasta´, assim não é necessário
chamar essa procedure passando 2 parâmetros... o parâmetro ´nomePasta´ vc usaria como variável apenas desta procedure,
no entanto, se vc quiser alterar o nome da pasta no provedor, não altera!}
Lista := TStringList.Create;
if caminhoPasta[Length(caminhoPasta)] <> ´\´ then caminhoPasta := caminhoPasta + ´\´;
IdFTP1.Connect(True, -1);
if not PastaExiste(nomePasta) then IdFTP1.MakeDir(nomePasta); {se a pasta já ñ existe, cria}
IdFTP1.ChangeDir(nomePasta); {entra na pasta para enviar os arquivos}
Lista.AddStrings(ArquivosDaPasta(caminhoPasta, ´*.jpg´, False)); {se quiser pode usar filtro, ou não!}
showmessage(inttostr(lista.count));
for A := 0 to Lista.Count -1 do IdFTP1.Put(caminhoPasta + Lista.Strings[A], Lista.Strings[A], True);
IdFTP1.Disconnect;
{coloca um indicador dentro de progresso dentro do loop ou no evento onWork da IdFTP1}
{Acima, é necessário vc criar a função PastaExiste - uso a mesma para arquivos, só não postei pq fiz de qualquer
maienra, acredito q vc possa utilizar alguma melhor...}
{A função ArquivosDaPasta, que usei acima serve apenas para jogar na Lista(TListBox) os arquivos da pasta a enviar
essa função retorna os arquivos da pasta e está nas dicas do site}
{Nota: essa procedure não envia subpastas e está sem tratamento de exceção, ou seja, vc precisa melhorá-la
{Utilizo Delphi 7 e Indy 9, funcionou sem problemas, espero q ajude!}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Envia_Pasta(´C:\Documents and Settings\Administrador\Desktop\ImagensA´, ´ImagensA´);
end;
GOSTEI 0
Warfighter
04/02/2008
Vlw :wink:
Até + :D
Até + :D
GOSTEI 0
Warfighter
04/02/2008
Como usar varios arquivos de uma mesma extenção ex [b:0e3972fafe]*.jpeg [/b:0e3972fafe]para uma outro code ?
GOSTEI 0
Tiago Rizzon
04/02/2008
Oi! Desculpa, não entendi a última questão!!
Se puder me explicar melhor...
Abração!
Se puder me explicar melhor...
Abração!
GOSTEI 0
Warfighter
04/02/2008
[quote:fc06544265=´Tiago Rizzon´]Oi! Desculpa, não entendi a última questão!!
Se puder me explicar melhor...
Abração![/quote:fc06544265]
tipo se eu fosse usar para trabalhar com todos arquivos da mesma extenção ex [b:fc06544265]*.jpeg [/b:fc06544265]como eu poderia fazer isso ?
Se puder me explicar melhor...
Abração![/quote:fc06544265]
tipo se eu fosse usar para trabalhar com todos arquivos da mesma extenção ex [b:fc06544265]*.jpeg [/b:fc06544265]como eu poderia fazer isso ?
GOSTEI 0
Tiago Rizzon
04/02/2008
function TForm1.ArquivosDaPasta(FDirectory, Filter: TFileName; ShowFolder:Boolean): TStringList;
var
ARec: TSearchRec;
Res: Integer;
begin
if FDirectory[Length(FDirectory)] <> ´\´ then FDirectory := FDirectory + ´\´;
Result := TStringList.Create;
try
Res := FindFirst(FDirectory + Filter, faAnyFile or faArchive, ARec);
while Res = 0 do begin
if ((ARec.Attr and faArchive) = faAnyFile) or ((ARec.Attr and faArchive) = faArchive) then
if ShowFolder then Result.Add(FDirectory + ARec.Name) else Result.Add(ARec.Name);
Res := FindNext(ARec);
end;
FindClose(ARec);
except Result.Free; end;
end;
{declara a function no public ou private se quiser}
function ArquivosDaPasta(FDirectory, Filter: TFileName; ShowFolder:Boolean): TStringList;
{como usar, testa num TButton}
var
Lista: TStringList;
begin
Lista := TStringList.Create;
Lista.AddStrings(ArquivosDaPasta(´C:\Pasta1´, ´*.jpg´, False));
{...}
Lista.Free;
end;
var
ARec: TSearchRec;
Res: Integer;
begin
if FDirectory[Length(FDirectory)] <> ´\´ then FDirectory := FDirectory + ´\´;
Result := TStringList.Create;
try
Res := FindFirst(FDirectory + Filter, faAnyFile or faArchive, ARec);
while Res = 0 do begin
if ((ARec.Attr and faArchive) = faAnyFile) or ((ARec.Attr and faArchive) = faArchive) then
if ShowFolder then Result.Add(FDirectory + ARec.Name) else Result.Add(ARec.Name);
Res := FindNext(ARec);
end;
FindClose(ARec);
except Result.Free; end;
end;
{declara a function no public ou private se quiser}
function ArquivosDaPasta(FDirectory, Filter: TFileName; ShowFolder:Boolean): TStringList;
{como usar, testa num TButton}
var
Lista: TStringList;
begin
Lista := TStringList.Create;
Lista.AddStrings(ArquivosDaPasta(´C:\Pasta1´, ´*.jpg´, False));
{...}
Lista.Free;
end;
GOSTEI 0
Warfighter
04/02/2008
[quote:ba38393a0d=´Tiago Rizzon´]procedure TForm1.Envia_Pasta(caminhoPasta, nomePasta: String);
var
A: Integer;
Lista: TStringList;
begin
{aconselho q vc aqui, nesta linha, extraia o nome da pasta do parâmetro ´caminhoPasta´, assim não é necessário
chamar essa procedure passando 2 parâmetros... o parâmetro ´nomePasta´ vc usaria como variável apenas desta procedure,
no entanto, se vc quiser alterar o nome da pasta no provedor, não altera!}
Lista := TStringList.Create;
if caminhoPasta[Length(caminhoPasta)] <> ´\´ then caminhoPasta := caminhoPasta + ´\´;
IdFTP1.Connect(True, -1);
if not PastaExiste(nomePasta) then IdFTP1.MakeDir(nomePasta); {se a pasta já ñ existe, cria}
IdFTP1.ChangeDir(nomePasta); {entra na pasta para enviar os arquivos}
Lista.AddStrings(ArquivosDaPasta(caminhoPasta, ´*.jpg´, False)); {se quiser pode usar filtro, ou não!}
showmessage(inttostr(lista.count));
for A := 0 to Lista.Count -1 do IdFTP1.Put(caminhoPasta + Lista.Strings[A], Lista.Strings[A], True);
IdFTP1.Disconnect;
{coloca um indicador dentro de progresso dentro do loop ou no evento onWork da IdFTP1}
{Acima, é necessário vc criar a função PastaExiste - uso a mesma para arquivos, só não postei pq fiz de qualquer
maienra, acredito q vc possa utilizar alguma melhor...}
{A função ArquivosDaPasta, que usei acima serve apenas para jogar na Lista(TListBox) os arquivos da pasta a enviar
essa função retorna os arquivos da pasta e está nas dicas do site}
{Nota: essa procedure não envia subpastas e está sem tratamento de exceção, ou seja, vc precisa melhorá-la
{Utilizo Delphi 7 e Indy 9, funcionou sem problemas, espero q ajude!}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Envia_Pasta(´C:\Documents and Settings\Administrador\Desktop\ImagensA´, ´ImagensA´);
end;[/quote:ba38393a0d]
Não consegui usar esse código corretamente, porque não sei fazer essas funções de verificar a pasta
quebrei a cabeça e nada de resolver esse problema :(
Pode me dizer qual funções eu coloco ae ? :wink:
var
A: Integer;
Lista: TStringList;
begin
{aconselho q vc aqui, nesta linha, extraia o nome da pasta do parâmetro ´caminhoPasta´, assim não é necessário
chamar essa procedure passando 2 parâmetros... o parâmetro ´nomePasta´ vc usaria como variável apenas desta procedure,
no entanto, se vc quiser alterar o nome da pasta no provedor, não altera!}
Lista := TStringList.Create;
if caminhoPasta[Length(caminhoPasta)] <> ´\´ then caminhoPasta := caminhoPasta + ´\´;
IdFTP1.Connect(True, -1);
if not PastaExiste(nomePasta) then IdFTP1.MakeDir(nomePasta); {se a pasta já ñ existe, cria}
IdFTP1.ChangeDir(nomePasta); {entra na pasta para enviar os arquivos}
Lista.AddStrings(ArquivosDaPasta(caminhoPasta, ´*.jpg´, False)); {se quiser pode usar filtro, ou não!}
showmessage(inttostr(lista.count));
for A := 0 to Lista.Count -1 do IdFTP1.Put(caminhoPasta + Lista.Strings[A], Lista.Strings[A], True);
IdFTP1.Disconnect;
{coloca um indicador dentro de progresso dentro do loop ou no evento onWork da IdFTP1}
{Acima, é necessário vc criar a função PastaExiste - uso a mesma para arquivos, só não postei pq fiz de qualquer
maienra, acredito q vc possa utilizar alguma melhor...}
{A função ArquivosDaPasta, que usei acima serve apenas para jogar na Lista(TListBox) os arquivos da pasta a enviar
essa função retorna os arquivos da pasta e está nas dicas do site}
{Nota: essa procedure não envia subpastas e está sem tratamento de exceção, ou seja, vc precisa melhorá-la
{Utilizo Delphi 7 e Indy 9, funcionou sem problemas, espero q ajude!}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Envia_Pasta(´C:\Documents and Settings\Administrador\Desktop\ImagensA´, ´ImagensA´);
end;[/quote:ba38393a0d]
Não consegui usar esse código corretamente, porque não sei fazer essas funções de verificar a pasta
quebrei a cabeça e nada de resolver esse problema :(
Pode me dizer qual funções eu coloco ae ? :wink:
GOSTEI 0
Warfighter
04/02/2008
????? :?: :?:
GOSTEI 0
Tiago Rizzon
04/02/2008
Oi!
Me dá teu e-mail q eu envio um exemplo dessa rotina...
Abraço!
Me dá teu e-mail q eu envio um exemplo dessa rotina...
Abraço!
GOSTEI 0