Tüm Platformlar için Hızlı Uygulama Geliştirme Kitap Yayın Süreci
Kitap gözden geçirilmek üzere BTG (Bilgi ve Teknoloji Grubu) 'na gönderildi. 05.10.2018-14:10
BTG (Bilgi ve Teknoloji Grubu) tarafından iki sayfalık bir reklam tasarımı bekleniyor. 08.10.2018 - 15:30

Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
FTP ağaç görünümü oluşturma
#1
Merhaba, 

Ben FTP Serverdaki klasörleri ağaç görünümünde yapmak istiyorum ve alt klasörlerde tıkllanarak geçiş yapmak istiyorum 

   IdFTP1.Host      := 'ornek.com';
   IdFTP1.Username  := 'xxxxx';
   IdFTP1.Password  := 'xxxxxxxxxxxx';
   IdFTP1.Connect;
   IdFTP1.List(ListBox1.Items, '', False);

   IdFtp1.Changedir('alt klasör')


böyle bağlanıp geçiş yapabiliyorum, Indy idftp bileşenini kullanarak ama ağaç şeklinde listelemeyi çözemedim.
- Namyelus
WWW
Cevapla
#2
Merhabalar,

Geçmişte bir programımda FTP ile işim olmuştu, işinize yarayabilecek kodlar mevcut. İsterseniz bir inceleyiniz.

unit FTPConnect1;

interface

uses
 Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.FileCtrl, Vcl.ExtCtrls;

type
 TFTPConnect = class(TForm)
   Label1: TLabel;
   Label2: TLabel;
   Timer1: TTimer;
   procedure Timer1Timer(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 FTPConnect: TFTPConnect;

implementation

{$R *.dfm}
 uses FTPBaglanti1,YeniYazilimKaydi1;
procedure TFTPConnect.Timer1Timer(Sender: TObject);
begin
try
 FTPBaglanti.IdFTP1.Disconnect;

 FTPBaglanti.IdFTP1.Username := FTPBaglanti.Edit2.Text;
 FTPBaglanti.IdFTP1.Host := FTPBaglanti.Edit1.Text;
 FTPBaglanti.IdFTP1.Password := FTPBaglanti.Edit3.Text;
 FTPBaglanti.IdFTP1.Port := StrToInt(FTPBaglanti.Edit4.Text);
 FTPBaglanti.IdFTP1.Passive := True;
 FTPBaglanti.IdFTP1.Connect;

 FTPBaglanti.IdFTP1.ChangeDir('/');
 FTPBaglanti.IdFTP1.List;

 if FTPBaglanti.IdFTP1.FileDate('/public_html') = 1 then
 begin
   FTPBaglanti.IdFTP1.MakeDir('public_html');
   FTPBaglanti.IdFTP1.Put('index.txt', '/public_html/index.txt');
   MessageBox(handle, 'Başarıyla dosya sistemi oluşturuldu!', 'Başarılı!', MB_OK + MB_ICONINFORMATION);
   FTPBaglanti.Button3.Enabled := False;
   Self.Close;
 end
else
 begin
   FTPBaglanti.IdFTP1.Put('index.txt', '/public_html/index.txt');
   FTPBaglanti.Button3.Enabled := False;
   YeniYazilimKaydi.Edit2.Text := FTPBaglanti.Edit5.Text + '/' + 'index.txt';
   Timer1.Enabled := False;
   MessageBox(handle, 'Başarıyla dosya sistemi oluşturuldu!', 'Başarılı!', MB_OK + MB_ICONINFORMATION);
   Self.Close;
 end;
except
 on E:Exception do
 begin
   FTPBaglanti.Button3.Enabled := True;
   FTPBaglanti.IdFTP1.Disconnect;
   Timer1.Enabled := False;
   MessageBox(handle, PChar('Yükleme yapılırken hata oluştu!' +#13+ E.Message), 'Yükleme Hatası!', MB_OK + MB_ICONERROR);
 end;
end;
end;

end.


Saygılarımla,
İyi çalışmalar.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Cevapla
#3
Cevap verdiğiniz için teşekürler hocam ama ben ftp'deki klasörleri listeleyip patika değiştirmek istiyorum, Filezilla gibi
- Namyelus
WWW
Cevapla
#4
Sorunun FTP ile alakası yok sanırım. Siz bence Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol'a bir göz atın.
There's no place like 127.0.0.1
WWW
Cevapla
#5
Herkese merhaba, List box'dan klasör listeleme ve patikadan geri gelme kodları

procedure TForm11.ListBox1Click(Sender: TObject);
var
s : String;
ext : String;
begin

if IdFTP1.Connected then begin

s:=ListBox1.Items.Strings[Listbox1.ItemIndex];
ext := ExtractFileExt(s);
if (ext = '') or (ext = ' ') then begin

IdFTP1.ChangeDir(Edit1.Text+'/'+ListBox1.Items.Strings[Listbox1.ItemIndex]);
IdFTP1.List(ListBox1.Items, '', False);
Edit1.Text := IdFtp1.RetrieveCurrentDir;

end
else
begin


SaveDialog1.InitialDir := GetCurrentDir;
SaveDialog1.FileName := ListBox1.Items.Strings[Listbox1.ItemIndex];
if SaveDialog1.Execute then begin
FtpDownloadFile(HOST, USER_ID, PASS_F, 21,
Edit1.Text, ListBox1.Items.Strings[Listbox1.ItemIndex], SaveDialog1.FileName ,ProgressBar1);

Geri Tuşu kodları, Patika'dan geriye gelme, patikayı ters çevirip, "/" karakterine kadarki klasörü silip bulunduğu patikadan geriye geliyor. 

procedure TForm11.Button6Click(Sender: TObject);
var
i,x : Integer;
s : String;
begin
if (Edit1.Text = '/httpdocs') or (Edit1.Text = '/httpdocs/Support Area')
or (Edit1.Text = '/Support Area') or (Edit1.Text = '/httpdocs/') or
(Edit1.Text = '') then begin
Beep;
Exit;
end;
s := ReverseString(Edit1.Text);
Delete(s, 1, pos('/', s) + Length('/')-1);
s := ReverseString(s);
Edit1.Text := s;
IdFTP1.ChangeDir(Edit1.Text);
ListBox1.Clear;
IdFTP1.List(ListBox1.Items, '', False);

Saygılarımla
- Namyelus
WWW
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  EFatura xml oluşturma ile ilgili kütüphane bilen? witalihakko 8 412 09-08-2018, Saat: 16:19
Son Yorum: witalihakko
  UDL Dosya Oluşturma Bay_Y 6 286 01-08-2018, Saat: 13:24
Son Yorum: Bay_Y
  kayıp olan dfm dosyasını oluşturma Bay_Y 7 305 09-05-2018, Saat: 13:05
Son Yorum: Bay_Y
  Birden fazla database oluşturma dilo 2 406 28-11-2017, Saat: 16:54
Son Yorum: Halil Han Badem
  Activex Kullanma veya oluşturma Lord_Ares 4 816 25-05-2017, Saat: 16:31
Son Yorum: Lord_Ares



Konuyu Okuyanlar: 1 Ziyaretçi