26 Nisan 2015 Pazar

FTP

       S.a. Arkadaşlar,
       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.
   public Date modtime(String remoteFilethrows IOException,
FTPException;
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 dirthrows IOExceptionFTPException; 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 dirthrows IOExceptionFTPException; Klasörün ismini bu metod yardımıyla değiştirebiliyorsunuz



     public long size(String remoteFilethrows 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