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. ;)
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.
Merhaba, FTP file transfer protocol’dür yani dosya transferleri için kullanılır. SQL ise veri tabanı diyebiliriz temel olarak. Bu ikisi çook farklı şeyler. Program ftp’de durur, verileri sql’de durur. Gönderilen ve alınan mesajlar sql server içerisinde saklanır. Aslında temel konular hakkında biraz araştırma yapmanız lazım. Bir bulut sunucuda (hosting vs) bir veritabanı olur, bir api aracılığı ile web app, desktop app ve mobile app bu api aracılığı ile mesaj gönderip alır. Sistem en en basit haliyle böyle olur.
Exeler açılır ama exeleri şifrelerseniz açsalar bile bir şey göremezler.
Kodları şifreleme
https://dinamiknetwork.com/smart-assembly-exe-kodlari-sifreleme/
Exe Çözme
https://dinamiknetwork.com/net-reflactor-ile-exe-decompile/