Douglas Soares Postado Dezembro 29, 2009 Denunciar Share Postado Dezembro 29, 2009 (editado) Boa tarde, uso o Indy 9 no delphi 7 e gostaria de saber como pegar o tamanho de um arquivo, já tentei IdFtp.Size('nomedoarquivo') e não da certo...por favor me deem uma luz!Abraços Editado Janeiro 4, 2010 por Douglas_Soares Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 29, 2009 Denunciar Share Postado Dezembro 29, 2009 Boa tarde, uso o Indy 9 no delphi 7 e gostaria de saber como pegar o tamanho de um arquivo, já tentei IdFtp.Size('nomedoarquivo') e não da certo...Exemplo usando o componente NMHTTPprocedure TFBdi.NMHTTP1PacketRecvd(Sender: TObject); var State: TResource; begin If NMHTTP1.BytesTotal = 4040 then begin showmessage('Arquivo Não Encontrado'); exit; end; QProgressBar1.maximum := NMHTTP1.BytesTotal; // total de bytes do arquivo QProgressBar1.position := NMHTTP1.BytesRecvd; // total de bytes recebidos durante o download StatusBar1.SimpleText := ' Download >> ' + IntToStr(NMHTTP1.BytesRecvd)+' de '+IntToStr(NMHTTP1.BytesTotal)+' Bytes recebidos'; end;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Dezembro 29, 2009 Autor Denunciar Share Postado Dezembro 29, 2009 onde fica esse componente no meu delphi? se não existe, me passe o link por favor...Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 29, 2009 Denunciar Share Postado Dezembro 29, 2009 onde fica esse componente no meu delphi? se não existe, me passe o link por favor...o componente NMHTTP fica na paleta FastNetabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Dezembro 30, 2009 Autor Denunciar Share Postado Dezembro 30, 2009 Não existe essa paleta no meu delphi :wacko: , tem como me passar o link do componente? ou então me passar um exemplo com IdFTP...Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2009 Denunciar Share Postado Dezembro 30, 2009 Não existe essa paleta no meu delphi , tem como me passar o link do componente? ou então me passar um exemplo com IdFTP...Exemplo : Progresso da transferencia de arquivos com idftphttp://www.planetadelphi.com.br/dica/5776/...uivos-com-idftpOBS: Faça as modificações necessárias para o seu usoabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Dezembro 30, 2009 Autor Denunciar Share Postado Dezembro 30, 2009 Não dá certo...Eu estou exibindo os arquivos do meu FTP, esses arquivos estão em 3 pastas...'/downloads/arquivos/ + cdsparam.Codigo_I.text + /' ou '/downloads/arquivos/ + cdsparam.Codigo_I.text + /SEC' ou '/downloads/arquivos/ + cdsparam.Codigo_I.text + /TES'eu jogo pra 3 string list e dps pra um listbox... bobera minha.... tentei fazer com um listbox sem as stringlists mas tava sobrepondo... pelo menos ta funcionando, asuuhasuhasuh....consigo exibir todos os valores que preciso menos o tamanho do arquivo... da uma olhada no código, a parte que tento ler o tamanho ta la na penultima linha...cdsBackupstamanho.AsInteger := IdFTP1.Size(ListBox1.Items.Strings);procedure TfrmGerenciaBackups.btn_backupsClick(Sender: TObject); var i, tipo : integer; ano, dia, mes : string; list1, list2, list3 : TStringList; bytesToTransfer: integer; begin list1 := TStringList.Create; list2 := TStringList.Create; list3 := TStringList.Create; if (idftp1.Size(cdsParamCODIGO_I.AsString) < 0) then begin //TOTAL try IdFTP1.ChangeDir('/' + cdsParamCODIGO_I.AsString); IdFTP1.List(list1, '*.zip', false); except Abort; end; //SEC try IdFTP1.ChangeDir('/' + cdsParamCODIGO_I.AsString + '/SEC'); IdFTP1.List(list2, '*.zip', false); except end; //TES try IdFTP1.ChangeDir('/' + cdsParamCODIGO_I.AsString + '/TES'); IdFTP1.List(list3, '*.zip', false); except end; end; ListBox1.Items.AddStrings(list1); ListBox1.Items.AddStrings(list2); ListBox1.Items.AddStrings(list3); cdsBackups.Open; for i := 0 to ListBox1.Items.Count - 1 do begin cdsBackups.Append; cdsBackupsnome.Text := tira_extensao(ListBox1.Items[i]); if copy(cdsBackupsnome.Text, 1, 4) = 'back' then begin cdsBackupstipo.Text := 'Total'; tipo := 0; end; if copy(cdsBackupsnome.Text, 1, 4) = 'sec_' then begin cdsBackupstipo.Text := 'Secretaria'; tipo := 1; end; if copy(cdsBackupsnome.Text, 1, 4) = 'tes_' then begin cdsBackupstipo.Text := 'Tesouraria'; tipo := 2; end; if tipo = 0 then begin ano := copy(cdsBackupsnome.Text, 7, 4); mes := copy(cdsBackupsnome.Text, 11, 2); dia := copy(cdsBackupsnome.Text, 13, 2); end; if tipo = 1 then begin ano := copy(cdsBackupsnome.Text, 11, 4); mes := copy(cdsBackupsnome.Text, 15, 2); dia := copy(cdsBackupsnome.Text, 17, 2); end; if tipo = 2 then begin ano := copy(cdsBackupsnome.Text, 11, 4); mes := copy(cdsBackupsnome.Text, 15, 2); dia := copy(cdsBackupsnome.Text, 17, 2); end; cdsBackupsdata.AsDateTime := strtodate(dia + '/' + mes + '/' + ano); cdsBackupstamanho.AsInteger := IdFTP1.Size(ListBox1.Items.Strings[i]); cdsBackups.Post; end; end;Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 30, 2009 Denunciar Share Postado Dezembro 30, 2009 Douglas ... pegue o exemplo que te passei ... todo o código e não apenas parte dele execute ele em uma nova aplicação .... depois voce vai adaptando a esse código o seu e verá que funcionaabraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Janeiro 4, 2010 Autor Denunciar Share Postado Janeiro 4, 2010 Olá Jhonas, como sempre você estava certo, testei o código em separado e funcionou...Tentei adapta-lo de todas as formas ao meu código mas não deu muito certo... gostaria de uma ajudinha nisso, segue o código:procedure TfrmGerenciaBackups.btn_backupsClick(Sender: TObject); var i, tipo : integer; ano, dia, mes : string; list1, list2, list3 : TStringList; begin list1 := TStringList.Create; list2 := TStringList.Create; list3 := TStringList.Create; if (idftp1.Size(cdsParamCODIGO_I.AsString) < 0) then begin //TOTAL try IdFTP1.ChangeDir('/' + cdsParamCODIGO_I.AsString); IdFTP1.List(list1, '*.zip', false); except Abort; end; //SEC try IdFTP1.ChangeDir('/' + cdsParamCODIGO_I.AsString + '/SEC'); IdFTP1.List(list2, '*.zip', false); except end; //TES try IdFTP1.ChangeDir('/' + cdsParamCODIGO_I.AsString + '/TES'); IdFTP1.List(list3, '*.zip', false); except end; end; ListBox1.Items.AddStrings(list1); ListBox1.Items.AddStrings(list2); ListBox1.Items.AddStrings(list3); cdsBackups.Open; for i := 0 to ListBox1.Items.Count - 1 do begin cdsBackups.Append; cdsBackupsnome.Text := tira_extensao(ListBox1.Items[i]); if copy(cdsBackupsnome.Text, 1, 4) = 'back' then begin cdsBackupstipo.Text := 'Total'; tipo := 0; end; if copy(cdsBackupsnome.Text, 1, 4) = 'sec_' then begin cdsBackupstipo.Text := 'Secretaria'; tipo := 1; end; if copy(cdsBackupsnome.Text, 1, 4) = 'tes_' then begin cdsBackupstipo.Text := 'Tesouraria'; tipo := 2; end; if tipo = 0 then begin IdFTP1.ChangeDir('/'); IdFTP1.ChangeDir(cdsParamCODIGO_I.Text); ano := copy(cdsBackupsnome.Text, 7, 4); mes := copy(cdsBackupsnome.Text, 11, 2); dia := copy(cdsBackupsnome.Text, 13, 2); end; if tipo = 1 then begin IdFTP1.ChangeDir('/'); IdFTP1.ChangeDir(cdsParamCODIGO_I.Text); IdFTP1.ChangeDir('SEC'); ano := copy(cdsBackupsnome.Text, 11, 4); mes := copy(cdsBackupsnome.Text, 15, 2); dia := copy(cdsBackupsnome.Text, 17, 2); end; if tipo = 2 then begin IdFTP1.ChangeDir('/'); IdFTP1.ChangeDir(cdsParamCODIGO_I.Text); IdFTP1.ChangeDir('TES'); ano := copy(cdsBackupsnome.Text, 11, 4); mes := copy(cdsBackupsnome.Text, 15, 2); dia := copy(cdsBackupsnome.Text, 17, 2); end; ListBox1.Selected[i] := true; bytesToTransfer := IdFTP1.Size(ListBox1.Items.Strings[i]); cdsBackupstamanho.AsInteger := bytesToTransfer; cdsBackupsdata.AsDateTime := strtodate(dia + '/' + mes + '/' + ano); cdsBackups.Post; end; end;Abraços! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Douglas Soares Postado Janeiro 4, 2010 Autor Denunciar Share Postado Janeiro 4, 2010 Jhonas, fiz tantos e tantos testes que cheguei a ponto de achar que era macumba... num funcionava de jeito nenhum... em um ato de desespero deletei o IdFTP e o readicionei, configurei, e fui testar... num é que o @#%¨&@%$ funcionou! o componente tava macumbado :blink: hasushausaAbraços e obrigado por toda a ajuda prestada! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Janeiro 4, 2010 Denunciar Share Postado Janeiro 4, 2010 num funcionava de jeito nenhum... em um ato de desespero deletei o IdFTP e o readicionei, configurei, e fui testar... num é que o @#%¨&@%$ funcionou!Já tive alguns problemas parecidos ... por algum motivo que eu ainda não descobri, o componente fica com o código bichado, e o simples fato de deletá-lo e colocá-lo novamente resolve o problemaAbraços e obrigado por toda a ajuda prestada!abraço e precisando é só escrever ...rs Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Comandante Postado Março 21, 2017 Denunciar Share Postado Março 21, 2017 Não consigo baixar nem clicar em nenhum link, podem me ajudar? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Março 22, 2017 Denunciar Share Postado Março 22, 2017 voce esta se referindo a esse link ? http://www.planetadelphi.com.br/dica/5776/progresso-da-transferencia-de-arquivos-com-idftp abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Douglas Soares
Boa tarde, uso o Indy 9 no delphi 7 e gostaria de saber como pegar o tamanho de um arquivo, já tentei IdFtp.Size('nomedoarquivo') e não da certo...
por favor me deem uma luz!
Abraços
Editado por Douglas_SoaresLink para o comentário
Compartilhar em outros sites
12 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.