İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# FTP Server Bağlantısı Yapmak

C# FTP Server Bağlantısı Yapmak
+ - 2

C# FTP Server Bağlantısı Yapmak yazım ile C# eğitim setime devam ediyorum. Bu yazım C# İle FTP Üzerine İşlemler yazı serimin 2. yazısıdır.

C# FTP Server Bağlantısı Yapmak

Önceki yazım olan FTP Nedir? Ne işe Yarar? Nasıl Kullanılır? yazımda ftp server hakkında genel bilgiler vermiştim. Bu yazımda C# ile bir ftp server ‘e nasıl bağlanacağımızı göreceğiz.

İlk olarak bir istek yani Request oluşturmamız gerekiyor. Bu Request ‘i FTP serverdeki bir klasör yoluna yapacağız. Bu klasör yolu ip port ve klasör adı ile oluşacak. Aşağıdaki tanımlama da  görebilirsiniz.

string  FTPDosyaYolu = "ftp:/88.88.88.88:8888//FTP_Files";

Bu şekilde bir bağlantı url miz olması gerekiyor. Biz 88.88.88.88 nolu ip adresine 8888 numaralı port üzerinden FTP_Files adlı klasöre bağlanmak istiyoruz. Yani FTP Server’e yapacağımız Request’i bu url ile yapacağız.

Öncelikle FtpWebRequest sınıfını kullabilmemizi sağlayacak olan kütüphaneyi ekleyelim.

using System.Net;

Request’imizi oluşturalım.

 FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(FTPDosyaYolu);

FtpWebRequest  sınıfının Create metodu ile yeni bir (request) istek oluşturduk. Şuan sadece adres çubuğuna url yi yazıp enter tuşuna basmış olduk. Bize kullanıcı adı ve şifre soruyor. Credentials özelliği ( kimlik bilgileri ) ile bağlantıyı açıyoruz.

string username = "kullaniciadi";
string password = "şifre";
request.Credentials = new NetworkCredential(username, password);

Kimlik bilgilerimizi de verdik. Şimdi bağlantımızın özelliklerini belirliyoruz.

request.UsePassive = true; // pasif olarak kullanabilme
request.UseBinary = true; // aktarım binary ile olacak
request.KeepAlive = false; // sürekli açık tutma
request.ContentLength = fi.Length; // işlem yapılacak dosyanın Fileİnfo sınıfı ile aldığımız uzunluk bilgisi

Bu özelliklerimizi de verdikten sonra en önemli özelliğimize geldi sıra. Bağlantımızın amacı ne? Klasör listesi almak, dosya indirmek, dosya yüklemek vs. Method özelliği ile de yapacağımız işlemin ne olduğunu belirteceğiz.

request.Method = WebRequestMethods.Ftp.AppendFile 
request.Method = WebRequestMethods.Ftp.DeleteFile 
request.Method = WebRequestMethods.Ftp.DownloadFile 
request.Method = WebRequestMethods.Ftp.GetDateTimestamp
request.Method = WebRequestMethods.Ftp.GetFileSize
request.Method = WebRequestMethods.Ftp.ListDirectory
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails
request.Method = WebRequestMethods.Ftp.MakeDirectory
request.Method = WebRequestMethods.Ftp.PrintWorkingDirectory
request.Method = WebRequestMethods.Ftp.RemoveDirectory
request.Method = WebRequestMethods.Ftp.Rename
request.Method = WebRequestMethods.Ftp.UploadFile
request.Method = WebRequestMethods.Ftp.UploadFileWithUniqueName

Yukarıda gördüğünüz kadar farklı metodumuz var. Ben bunların hepsini anlatmayacağım ama ne anlama geldiklerini bu dersim içerisinde vereceğim.

  • AppendFile = Dosya ekle
  • DeleteFile  = Dosya Sil
  • DownloadFile  = Dosya İndir
  • GetDateTimestamp  = Tarih Zaman Damgasını Al
  • GetFileSize = Dosya Boyutunu Al
  • ListDirectory  = Klasör Listesini Al
  • ListDirectoryDetails = Detaylı Klasör Listesini Al
  • MakeDirectory = Klasör Oluştur
  • PrintWorkingDirectory = Çalışma Klasörünü Yazdır
  • RemoveDirectory = Klasör Sil
  • Rename = Yeniden Adlandır
  • UploadFile = Dosya Yükle
  • UploadFileWithUniqueName = Benzersiz isim ile yükle

FTP Server bağlantısı işte bu kadar. Şuanda biz FTP Server’e bağlanmış olduk. Bundan sonrası artık isteğimize (request) yanıtlar (reponse) alacağız. Aldığımız yanıtlara method olarak gönderdiğimiz istekleri gerçekleştireceğiz.


C# FTP Server Bağlantısı Yapmak, yazımızda bu kadar arkadaşlar. C# İle FTP Üzerine İşlemler yazı serimin devamında görüşmek üzere.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…

Takipte ve Sağlıcakla kalın. ;)

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (2)

  1. 12 ay önce

    Merhaba Mustafa hocam, ben büyük çaplı olmasa da bir mesajlaşma uygulaması projesi yapmak istiyorum. FTP ile yaparsam daha kolay olacak gibi geliyor fakat güvenlik açısından SQL Server ile mi yapsam diye düşündüm. Hostingimin SSL sertifikası var. Güvenlik açısından SQL Server mı kullanayım, FTP mi? Yazarken hata yaptıysam kusura bakmayın, tam biliyor sayılmam. Ayrıca programı birisinin açıp hostinge erişmemesi için nasıl bir önlem alabilirim? .NET ile yapılan programların .exe’sinin kolayca açılabildiğini duydum.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.