Bugünkü konumuz ftp ile ilgili işlemler olacak. Ftp ile ilgili internetten küçük bir araştırmadan sonra 2 jarla karşılaştım. Apache edtFTPj . Kaynaklar daha ağırlıklı apache kütüphanesi ile ilgiliydi. Ben de öyle bir başlangıç yapmıştım, daha sonra arkadaşımın apache'de karşılaşmış olduğu bir hata dolayısıyla tavsiyesi üzerine yolumuza edtFTPj ile devam ettik. Bunla ilgili da yeterince kaynak mevcur tabii ki yabancı sitelerde. Enterprise sürümünü kullanmak isterseniz ücret vermek zorundasınız, fakat bize ücretsiz sürümü yetti. Sizlere de yeteceğini düşünüyorum.
Şimdi bu girişten sonra yavaş yavaş konumuza geçelim. Öncelikle amacımız neydi ? Öncelikle ftp'ye bir bağlantı sağlamak daha sonra orada herkesin kendisine göre isteyebileceği işlemler yapabilmek. Bize silme işlemi lazım olduğu için, silme üzerinde duracağız daha çok fakat diğer metodları da şöyle kısaca gözden geçirmekte fayda. Sitesinde hepsi mevcut, fakat biz de gözümüze çarpan bazı metodları anlatmaya çalışacağız. Şimdi ftp'imize bağlanma vakti gelmiştir herhalde.
Son bir şey daha maven projesi ile çalışıyorsanız
<dependency>
<groupId>com.enterprisedt</groupId>
<artifactId>edtFTPj</artifactId>
<version>1.5.3</version>
</dependency>
yok maven projesi oluşturmadıysanız buradan jar dosyasını indirebilirsiniz. Bu küçük noktadan sonra şimdi ftp bağlantı açma ve kapatma işlemlerimizi gözden geçirelim.
String host = "ftp.xyz.com";
String user = "malikmasis";
String password = "******";
FTPClient ftp = null;
try {
// ftp sunucu kuruluyor
ftp = new FTPClient();
ftp.setRemoteHost(host);
FTPMessageCollector listener = new FTPMessageCollector();
ftp.setMessageListener(listener);
ftp.setAutoPassiveIPSubstitution(true);
/*Diğer Kodlar Buraya*/
// bağlanti sağlanıyor
ftp.connect();
// kullanıcı adı ve şifresi ile giriş sağlanıyor
ftp.login(user, password);
//geçen yazılardan birinden bağlantıyı kapatmanın üzerinde durmuştuk
//burada da açtığımız
ftp.quit();
} catch (Exception e) {
e.printStackTrace();
}
Alışık olduğumuz üzere yorum satırları kodun içinde mevcut, fakat kodumuz sadece ftp bağlanıyor ve bağlantıyı sonlandırıyor. Bundan sonra yapacağımız her işlemi diğer kodlar buraya kısmına yazabiliriz. Dediğimiz gibi biz silme işlemi üzerinde durduk. Şimdi biraz silme işleminden bahsedelim.
//ftpdeki dosyaları okuyoruz ve files dizisine atıyoruz
//false değeri true olsa hakkında ayrıntılı bilgi veriyor
String[] files = ftp.dir("./", false);
//dosyaları ekrana yazdırıyoruz
// ./ ana dizi. / yönüne dikkat edin
for (String file : files) {
System.out.println(file);
}
//ana dizinin altındaki directory klasörüne geçiyoruz
files = ftp.dir("./directory/", false);
//dosyaları ekrana yazıyoruz yine
for (int i = 0; i < files.length; i++) {
System.out.println(files[i]);
//burada yaptığımız şey dosya silme işlemidir
//fakat dosya dolu iken silinmediği için önce içini boşaltıyoruz
String[] fileIn = ftp.dir("./" + files[i], false);
for (int k = 2; k < fileIn.length; k++) {
System.out.println(fileIn[k] );
//Tüm dosyaları siliyoruz
ftp.delete(fileIn[k]);
}
//silinecek dosya kalmadığında klasörü de siliyoruz
ftp.rmdir("./" + files[i]);
}
Şimdi de dediğimiz gibi bazı metodları kısa kısa açıklayalım.
Girmiş olduğumuz dosyanın tarihini bize verir. Burada tarihlere göre dosyaların bilgilerini çekip , belli bir tarihten önceki dosyaları silme işlemi yapabiliriz mesela.
public void mkdir(String dir) throws IOException, FTPException; Burada belirtilen yere yeni klasör oluşturabiliyoruz. Farklı sebeplerden dolayı yeni klasörler oluşturmak istediğinizde bu metodu kullanabilirsiniz. Parametreleri farklılık gösteriyor.
public void chdir(String dir) throws IOException, FTPException; Klasörün ismini bu metod yardımıyla değiştirebiliyorsunuz
public long size(String remoteFile) throws IOException,
FTPException; Burada ftpdeki dosyanın boyutu döndürülüyor.
Burada daha bir çok metod ve yöntem var tabii ki hepsini açıklamak zor, fakat örnek teşkil etmesi açısından bir kaç tanesini örnek vermeye çalıştık. Burada ayrımtılı bilgi mevcut. İncelemek isteyenler olursa devamını rahatlıkla inceleyebilir. Biz yazımızı burada sonlandırıyoruz. İyi çalışmalar dileriz.
Hiç yorum yok:
Yorum Gönder