ÇÖZÜLDÜ-ftpclient problemi

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

ÇÖZÜLDÜ-ftpclient problemi

Mesaj gönderen sadikacar60 »

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 10:23 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: ftpclient problemi

Mesaj gönderen ertank »

Merhaba, aldığınız hata nedir acaba?
sadikacar60
Üye
Mesajlar: 83
Kayıt: 28 Ara 2017 04:14
İletişim:

Re: ftpclient problemi

Mesaj gönderen sadikacar60 »

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
ertank
Kıdemli Üye
Mesajlar: 1650
Kayıt: 12 Eyl 2015 12:45

Re: ftpclient problemi

Mesaj gönderen ertank »

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: 83
Kayıt: 28 Ara 2017 04:14
İletişim:

Re: ftpclient problemi

Mesaj gönderen sadikacar60 »

denedim sonuç aynı sanırım lazarusla ilğili bir sorun
d7 de aynı kodlarla deniyorum sorunsuz çalışıyor.
saygılarımla
sadikacar60
Üye
Mesajlar: 83
Kayıt: 28 Ara 2017 04:14
İletişim:

Re: ftpclient problemi

Mesaj gönderen sadikacar60 »

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
Cevapla