Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
donte
Üye
Mesajlar: 6
Kayıt: 31 Mar 2015 11:01

Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen donte »

Merhaba Arkadaşlar. Çok uzun süredir üzerinde çalıştığım bir program var. Her arkadaşımdan yardım istedim fakat kimse yardım etmeyince kendi başıma birşeyler yapmak istedim ve bir yerde tıkandım.

Baştan anlatıcak olursan;
Ftp programı ile kişisel sunucumdan dosya paylaşımında bulunuyorum (.pdf) dosyalar.
İsteğim şu : Sabit bir ip var (örn. 1.1.1.1) Dosyalarımı hazırladım. Ftpden girerek kişisel adınız ve şifrenizle (örn. donte şifre 1234) ftp deki .pdf uzantılı dosyalara ulaşabiliyorsunuz.

Yapmak istediğim :

1. adım ftp bağlanmak
bunu şu şekilde yaptım .
2 tane tEdit koydum birincisi Kullanıcı Adı ikincisi Şifre Şekilde. Birtane buton ve TIDFtp ekledim

Kod olarak

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin

ftp.Host     := 1.1.1.1.1;
ftp.username := edit2.text;
ftp.password := edit3.text;
ftp.port     := 21;

ftp.connect();
if ftp.connected = true then begin
label1.caption := 'Bağlanıldı'

end

else
label1.caption := 'Bağlanılmadı!'


end;
Ftp ye bu şekilde bağlanabilirmişim. Peki girişi yaptık Sorunlar bundan sonra başlıyor.

Ftp ye girdiğimde hangi kod ile klasöre ulaşabilirim ve bu klasördeki .pdf leri görebilirim.

1. Resim : Bu Şekilde bir giriş ekranı
Resim

2. Resim : klasörlerin sergilenmesi
Resim

3. Resim : İçini Girdiklerinde pdf lerin gözükmesi.
Resim

Bu dosyaları çift tıklayarak açabilecekleri şekilde veya direk dosyaları bilgisayara indirebilecek bir şekilde nasıl yapabilirim.

yardımcı olabilecek arkadaşlara şimdiden çok teşekkür ediyorum sürekli forumu kontrol edeceğim.[/b]
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen true_false »

Indiy demolarinda ftp client demosunu incelemenizi oneririm. Internette indy demos diye aratin.
type
Tform1 = class(Tform)
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen xozcanx »

Google araması ile edineceğin bir PDF bir kitap var. FTP bağlantısı ve Dosya işlemleri hakkında örnek projesi mevcut.Delphi ile programlamaya başlayanların mutlaka elinin altında olması gerekir.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
donte
Üye
Mesajlar: 6
Kayıt: 31 Mar 2015 11:01

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen donte »

xozcanx yazdı:Google araması ile edineceğin bir PDF bir kitap var. FTP bağlantısı ve Dosya işlemleri hakkında örnek projesi mevcut.Delphi ile programlamaya başlayanların mutlaka elinin altında olması gerekir.
Teşekkürler cevap için indirip inceleyeceğim fakat konu hakkında yardım arayışım devam etmekte. Okuyarak değilde uygulayarak yapmak daha öğretici gelmekte bana. Teşekürler tekrardan.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen xozcanx »

PDF içinde FTP diyerek arama yap istediğin konuya ulaşırsın. Okumak önemli değil burada okumaktan ziyade Hangi kod nerede, niçin kullanılmış bunu kavramaya çalış. kopyala yapıştır yapma. Sadece günü kurtarmış olursun. Biraz çaba istediğini elde edersin.Yaptığında da birazdaha iştahın kabarır :wink: severek yaparsın
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
donte
Üye
Mesajlar: 6
Kayıt: 31 Mar 2015 11:01

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen donte »

Merhaba,
Kesinlikle bugün basbaya okuyup isteğime kavuşmaya az kaldığını gördüm. Tekrar teşekkürler :)
Kullanıcı avatarı
csunguray
Üye
Mesajlar: 855
Kayıt: 09 Ara 2006 05:08
Konum: Adana
İletişim:

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen csunguray »

Gerçek bir cevap vermekten "Google da ara", "örneklere bak", "bu soru daha önce cevaplanmıştı, ara bul" türünden cevaplar forumun kalitesini düşürmektedir. Donte arkadaşımızın istediği şey ortalama 15 satırlık kodla çözülebilir. Daha önce yazdığınız bir kodunuz varsa buraya yapıştırın, forumu zenginleştirin. Daha sonra da bu kod üzerinden tartışarak devam edilsin.
C. Sunguray
csunguray at netbilisim.kom
Net Bilişim Hizmetleri

Sıradan her programcı bilgisayarın anlayabileceği kodlar yazabilir.
Sadece iyi programcılar insanların da anlayabileceği kodlar yazarlar.
Martin Fowler (http://martinfowler.com/)
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen SimaWB »

csunguray yazdı:Gerçek bir cevap vermekten "Google da ara", "örneklere bak", "bu soru daha önce cevaplanmıştı, ara bul" türünden cevaplar forumun kalitesini düşürmektedir. Donte arkadaşımızın istediği şey ortalama 15 satırlık kodla çözülebilir. Daha önce yazdığınız bir kodunuz varsa buraya yapıştırın, forumu zenginleştirin. Daha sonra da bu kod üzerinden tartışarak devam edilsin.
Bence asıl sorun; aramada yapılmadan, tekrar tekrar aynı soruların sorulması. Soru sormadan önce araştırma yapmak kültürümüze ters sanırım :( Hep işin kolayına kaçıyoruz. Araştırma yapmadan, "ben sorayım, birileri versin cevabını, kopyalayıp kullanayım" mantığı vaz BİZlerde.
Yoksa, 5-10 sayfa önce yazılmış olan aynı kodu buraya tekrar yazmak forumu zenginleştirmez, tam tersi kod çöplüğüne döndürür.

Not: Bu yazdıklarımı öncelikle bu soruyu soran olmak üzere lütfen kimse üzerine alınmasın. Forumların genel bir problemi üzerine bunları yazma ihtiyacı hissettim.
There's no place like 127.0.0.1
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen xozcanx »

csunguray yazdı:Gerçek bir cevap vermekten "Google da ara", "örneklere bak", "bu soru daha önce cevaplanmıştı, ara bul" türünden cevaplar forumun kalitesini düşürmektedir. Donte arkadaşımızın istediği şey ortalama 15 satırlık kodla çözülebilir. Daha önce yazdığınız bir kodunuz varsa buraya yapıştırın, forumu zenginleştirin. Daha sonra da bu kod üzerinden tartışarak devam edilsin.
Hocam yorumunuz üzerine cevap verme geregini hissettim.Maksadım tartışma ortamı yaratmak değil kendimi ifade etmek. Kendi adıma konuşacak olursam, Giriş,başlangıç seviyesinde olup Programlamayı meslek olarak yapmak vede elimden geldiğincede öğretici olarak devam etmek istiyorum. Bu konuda ise @donte nin yeni kayıt olduğunu gördüğüm için muhtemelen Delphiye yeni başladığını düşündüm ve Öncelikle bir kitap edinerek temek bilgileri öğrenmesi için böyle bir yol göstermek istedim. ilk başlarda kopyala yapıştır mantığı ile hareket ederse ileride çok zorluk çekeceğini düşünüyorum. Eğer o kodları kendisi yazarak projenin %80'ini bitirse kalan kısmı için yardım alsa bile hevesi dahada artacak! Ben şundan eminin şuan kızıyordur belki ama bu işe devam ederse ileride ne demek istediğimi çok iyi anlayacaktır.
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen true_false »

csunguray yazdı:Gerçek bir cevap vermekten "Google da ara", "örneklere bak", "bu soru daha önce cevaplanmıştı, ara bul" türünden cevaplar forumun kalitesini düşürmektedir. Donte arkadaşımızın istediği şey ortalama 15 satırlık kodla çözülebilir. Daha önce yazdığınız bir kodunuz varsa buraya yapıştırın, forumu zenginleştirin. Daha sonra da bu kod üzerinden tartışarak devam edilsin.
@csunguray 15 satırlık kodu siz yazında bizde bakalım merak ettim. Amacım polemik yaratmak değil sadece merak.
type
Tform1 = class(Tform)
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen mrmarman »

@true_false sen bari minik bir deneme yapıp yazsaydın... Bildiğini sanıyorum çünkü.

Delphi'de kodu dilersen 15 satırla da ifade edersin, dilersen istediğin satır sayısı kadar da sündürebilirsin.

Örnek çok zor değil diyerek araştırmaya sevk etmek konusu önemli burada...
Zaten iyi bir yere kadar geldiğini ifade etmiş arkadaş.

Passive konusunda, eğer ftp sunucusu sadece tek bir kullanıcı girişine müsaade ediyorsa FALSE yapın. Bir fonksiyonda liste almış işlem yapıyorken hattı meşgul etmezsiniz. Ben Sony Kameralara FTP ile erişim için Passive FALSE kullanıyorum yoksa liste aldıktan sonra bir süre dosya erişimi için ikinci defa açtığınızda zaten maksimum 1 user limiti var diyor. oradan tecrübeyle arada bildireyim istedim.

15 satırı 2 geçti ama, if kontrolünü de savarsan 3 satır kazanırsın, tstringlist yerine string olursa 2 satır daha kazanırsın :roll:
Fonksiyon halinde yazdım, kullanımı pratik olsun diye...

Kod: Tümünü seç

USES IdFtp;

function FTP_DosyaListesi( strHost, strUser, strPass, strDir : String ): TStringList;
begin
  With TIdFtp.Create(nil) do begin
    Host     := strHost;
    Username := strUser;
    Password := strPass;
    Passive  := True;
    Connect;
    If Connected then begin
      Result := TStringList.Create;
      ChangeDir( strDir );
      List( Result, '', True);
      Quit;
    end else ShowMessage('Bağlantı Sağlanamadı...');
    Free;
  end;
end;
Kullanımı da

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  With FTP_DosyaListesi( 'ftp.domain.org', 'loginadi', 'parola', '/public_html' ) do
  begin
    ShowMessage( Text );
    Free;
  end;
end;
Resim
Resim ....Resim
donte
Üye
Mesajlar: 6
Kayıt: 31 Mar 2015 11:01

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen donte »

csunguray yazdı:Gerçek bir cevap vermekten "Google da ara", "örneklere bak", "bu soru daha önce cevaplanmıştı, ara bul" türünden cevaplar forumun kalitesini düşürmektedir. Donte arkadaşımızın istediği şey ortalama 15 satırlık kodla çözülebilir. Daha önce yazdığınız bir kodunuz varsa buraya yapıştırın, forumu zenginleştirin. Daha sonra da bu kod üzerinden tartışarak devam edilsin.


Merhaba csunguray. Bu işe yeni başladım kafamda küçük bir proje var. daha önce delphi ile çalışmıştım ve sevdiğim bir program olmuştu. dediğin gibi böyle birşey olsa güzel olurdu teşekkürler :)

SimaWB yazdı:
csunguray yazdı:Gerçek bir cevap vermekten "Google da ara", "örneklere bak", "bu soru daha önce cevaplanmıştı, ara bul" türünden cevaplar forumun kalitesini düşürmektedir. Donte arkadaşımızın istediği şey ortalama 15 satırlık kodla çözülebilir. Daha önce yazdığınız bir kodunuz varsa buraya yapıştırın, forumu zenginleştirin. Daha sonra da bu kod üzerinden tartışarak devam edilsin.

Bence asıl sorun; aramada yapılmadan, tekrar tekrar aynı soruların sorulması. Soru sormadan önce araştırma yapmak kültürümüze ters sanırım :( Hep işin kolayına kaçıyoruz. Araştırma yapmadan, "ben sorayım, birileri versin cevabını, kopyalayıp kullanayım" mantığı vaz BİZlerde.
Yoksa, 5-10 sayfa önce yazılmış olan aynı kodu buraya tekrar yazmak forumu zenginleştirmez, tam tersi kod çöplüğüne döndürür.

Not: Bu yazdıklarımı öncelikle bu soruyu soran olmak üzere lütfen kimse üzerine alınmasın. Forumların genel bir problemi üzerine bunları yazma ihtiyacı hissettim.


Merhaba simawb. Google vb yerlerde site dahil olmak üzeri aradığımı tam olarak bulamadım. Kadlar aklında varsa sana çok kolay gelebilir fakat gerçekten benim için çok zor. Hatta en sonra çare google'de delphi yardım yazdım forumda heryeri aradım bulamayınca açıklayıcı şekilde yazma gereği duydum. Arkadaşın dediği .pdf yi indirdim ve inceledim yavaş yavaş birşeyler yapmaya çalışıyorum. Cevaplar için teşekkürler.

mrmarman yazdı:@true_false sen bari minik bir deneme yapıp yazsaydın... Bildiğini sanıyorum çünkü.

Delphi'de kodu dilersen 15 satırla da ifade edersin, dilersen istediğin satır sayısı kadar da sündürebilirsin.

Örnek çok zor değil diyerek araştırmaya sevk etmek konusu önemli burada...
Zaten iyi bir yere kadar geldiğini ifade etmiş arkadaş.

Passive konusunda, eğer ftp sunucusu sadece tek bir kullanıcı girişine müsaade ediyorsa FALSE yapın. Bir fonksiyonda liste almış işlem yapıyorken hattı meşgul etmezsiniz. Ben Sony Kameralara FTP ile erişim için Passive FALSE kullanıyorum yoksa liste aldıktan sonra bir süre dosya erişimi için ikinci defa açtığınızda zaten maksimum 1 user limiti var diyor. oradan tecrübeyle arada bildireyim istedim.

15 satırı 2 geçti ama, if kontrolünü de savarsan 3 satır kazanırsın, tstringlist yerine string olursa 2 satır daha kazanırsın :roll:
Fonksiyon halinde yazdım, kullanımı pratik olsun diye...

Kod: Tümünü seç

USES IdFtp;

function FTP_DosyaListesi( strHost, strUser, strPass, strDir : String ): TStringList;
begin
  With TIdFtp.Create(nil) do begin
    Host     := strHost;
    Username := strUser;
    Password := strPass;
    Passive  := True;
    Connect;
    If Connected then begin
      Result := TStringList.Create;
      ChangeDir( strDir );
      List( Result, '', True);
      Quit;
    end else ShowMessage('Bağlantı Sağlanamadı...');
    Free;
  end;
end;
Kullanımı da

Kod: Tümünü seç

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  With FTP_DosyaListesi( 'ftp.domain.org', 'loginadi', 'parola', '/public_html' ) do
  begin
    ShowMessage( Text );
    Free;
  end;
end;
Kodlar için teşekkürler. Hiç birşey anlamadım desem yeridir. /public_gtml kullanmışın bu ne için? yada neyse çok fazla soru çok kafa karışması demektir. yaparken öğrenirim haralde takıldığım yerde size sorucağım :) Tekrar cevaplar için teşekkür ederim.[/b]
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4741
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen mrmarman »

FTP dediğin, bir adres, bir login adı, bir parola ve nihai olarak bir klasör yolundan ibarettir.

Bu örneği çalıştırmayı başardığında daha bu bir başlangıç. Asıl sanat bundan sonra.

Kolay Gelsin
Resim
Resim
Resim ....Resim
donte
Üye
Mesajlar: 6
Kayıt: 31 Mar 2015 11:01

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen donte »

mrmarman yazdı:FTP dediğin, bir adres, bir login adı, bir parola ve nihai olarak bir klasör yolundan ibarettir.

Bu örneği çalıştırmayı başardığında daha bu bir başlangıç. Asıl sanat bundan sonra.

Kolay Gelsin
Resim


İğnenin ucundan bir ipi gecirebilsem. Nereden Ne Başlanır. Ne yapılır. USERS diye başlangıç var örn.. bu nedir? elimde .pdfler var. Bunlar sadece koldarı vermiş kodlar ne işe yarar onu söylemiş. Nerede ne şekilde hangi amaç ile kullanılır bir bilgi yok malesef. Uygulamaya 5 adet buton 2 adet combobox koyun diyor fakat kodların iç.inde edit ve label ile alakalı kodlar var örnek olsun diye yazıyorsun program içinde edit diye birşey yok diyor. veya ona benzer şeyler. videolar flan izledim aynı şekil. Bir işin ucundan tutabilsem gidicem öylede :)
Cevap için teşekkürler.
true_false
Üye
Mesajlar: 401
Kayıt: 22 Tem 2004 02:03
Konum: sıkıntı çekmişlere yakın bi yerden

Re: Ftp Bağlantı ve Ftpdeki Dosyaları Gösterme

Mesaj gönderen true_false »

@mrmarman olay sadece ftp'ye login olmaksa elbette satır sayısının bir önemi yok ama arkadaşın yazdığı list işlemlerinde dosya gösterme okuma yazma yetkilerinin ayarlanması directroy işlemleri olduğu için bunun 15 satır kodla yapılamayacağını hepimiz biliyoruz. Dediğim gibi olay polemik yaratmak değil. Burdaki herkese saygım var ama foruma üye olduğum ilk tarihten itibaren genel çözüm değil lokal çözüm istedim ve bu şekilde ilerledim. benim ünide aldığım bir proje ftp projesiydi aynı arkadaşın istediği gibi keşke elimde kodlar olsada göndersem ama aradan çok uzun zaman geçti. Hatta bunla ilgili bir sorum bile mevcut olabilir forumda. Ozaman indy demos çok çok işime yaramıştı bende bunu paylaştım arkadaşla.
type
Tform1 = class(Tform)
Cevapla