ÇÖZÜLDÜ-ftpclient problemi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
sadikacar60
Üye
Mesajlar: 68
Kayıt: 28 Ara 2017 03:14
İletişim:

ÇÖZÜLDÜ-ftpclient problemi

Mesaj gönderen sadikacar60 » 20 Mar 2020 03:43

arkadaşlar
http://swepc.se/blog/how-to-read-ftp-files-delphi-10/
burdaki örneği uygulamaya çalışıyorum ama

Kod: Tümünü seç

idftp1.List('*.*', True);
bu satırda hata alıyorum.

eksik olan nedir acaba
saygılarımla

Kod: Tümünü seç


unit Unit1;
 
interface
 
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, IdBaseComponent,
  IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase,
  IdFTP;
 
type
  TForm1 = class(TForm)
    edtuser: TEdit;
    edtpass: TEdit;
    edthost: TEdit;
    edtdir: TEdit;
    idftp1: TIdFTP;
    btndoit: TButton;
    procedure btndoitClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.btndoitClick(Sender: TObject);
var
  i: integer;
  dir: string;
  searchResult: TSearchRec;
 
begin
 
  idftp1.Host := edthost.Text;
  idftp1.Username := edtuser.Text;
  idftp1.Password := edtpass.Text;
 
  dir := ExtractFilePath(ParamStr(0)) + 'read_ftp\';
 
  try // find all files in read_ftp folder and delete all
    begin
      FindFirst(dir + '\*.*', faAnyFile + faReadOnly, searchResult);
      DeleteFile(dir + '\' + searchResult.Name);
      while FindNext(searchResult) = 0 do
      begin
        DeleteFile(dir + '\' + searchResult.Name);
      end;
      FindClose(searchResult);
 
      rmdir(dir);
    end;
  except
    // delphi is my power?
  end;
 
  if not(DirectoryExists(dir)) then // if folder not found, create it :)
  begin
    CreateDir(dir);
  end;
 
  ChDir(dir);
 
  try // connect and download files from FTP
    begin
      idftp1.Connect;
      idftp1.ChangeDir(edtdir.Text);
      idftp1.List('*.*', True);
 
      for i := 0 to idftp1.DirectoryListing.Count - 1 do
      begin
        idftp1.Get(idftp1.DirectoryListing.Items[i].FileName,
          idftp1.DirectoryListing.Items[i].FileName, False, False);
      end;
 
      idftp1.Disconnect;
      idftp1.Free;
    end;
  except
    // delphi is my power?
  end;
end;
 
end.
En son sadikacar60 tarafından 21 Mar 2020 09:23 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
öncelikle nezaket. lütfen gereksiz, amaçsız cevap yazma. gerçekten yardımcı olacaksan cevap yaz.

ertank
Üye
Mesajlar: 1281
Kayıt: 11 Eyl 2015 11:45

Re: ftpclient problemi

Mesaj gönderen ertank » 20 Mar 2020 04:37

Merhaba, aldığınız hata nedir acaba?

sadikacar60
Üye
Mesajlar: 68
Kayıt: 28 Ara 2017 03:14
İletişim:

Re: ftpclient problemi

Mesaj gönderen sadikacar60 » 20 Mar 2020 05:12

hocam
Proje Project, 'EIdConnClosedGracefully' istisnasını kaldırıdı.
In file'Core\IdIOHandler.pas at line 2221;
raise EIdConnClosedGracefully.create()RSConnectionClosedGracefully;

şeklinde bir hata alıyorum
öncelikle nezaket. lütfen gereksiz, amaçsız cevap yazma. gerçekten yardımcı olacaksan cevap yaz.

ertank
Üye
Mesajlar: 1281
Kayıt: 11 Eyl 2015 11:45

Re: ftpclient problemi

Mesaj gönderen ertank » 20 Mar 2020 06:57

FTP iletişimini pasif mod kullanarak yapmayı deneyebilirsiniz. Bazı FTP sunucuları firewall ayarları sebebi ile aktif modda iletişimi desteklemiyorlar.
IdFTP1.Passive parametresini değiştirerek deneyebilirsiniz.

sadikacar60
Üye
Mesajlar: 68
Kayıt: 28 Ara 2017 03:14
İletişim:

Re: ftpclient problemi

Mesaj gönderen sadikacar60 » 20 Mar 2020 07:51

denedim sonuç aynı sanırım lazarusla ilğili bir sorun
d7 de aynı kodlarla deniyorum sorunsuz çalışıyor.
saygılarımla
öncelikle nezaket. lütfen gereksiz, amaçsız cevap yazma. gerçekten yardımcı olacaksan cevap yaz.

sadikacar60
Üye
Mesajlar: 68
Kayıt: 28 Ara 2017 03:14
İletişim:

Re: ftpclient problemi

Mesaj gönderen sadikacar60 » 21 Mar 2020 09:23

sorun lazarus türkçe uyumsuzluğundan kaynaklanıyorsmuş
hatayı istisnalara ekleyince veya hata mesajı ekranındaki bu istisna türünü yoksa seçeneğini seçince bir daha hata vermedi
teşekkürler saygılar sunarım
öncelikle nezaket. lütfen gereksiz, amaçsız cevap yazma. gerçekten yardımcı olacaksan cevap yaz.

Cevapla