• 24-02-2013, 16:08:32
    #1
    merhabalar arkadaşlar C# 'da bir masaüstü uygulaması yapıyorum. Uzak sunucuya ftp ile bağlanıp oradaki dosyaları yedeklemek istiyorum fakat dosyaları tek tek indirmek yerine hepsini rar'layıp tek bir dosya halinde indirmek istiyorum. Daha önce bu tarz bişi ile ilgilenen varmı nasıl bir yol izlemeliyim ?
  • 24-02-2013, 16:32:12
    #2
    biraz karışık geldi soru, indirmekten falan bahsetmişsiniz sonra sunucuda yapmak istiyorum demişsiniz..

    tahmin yürüttüğümü söyleyeyim, ftp içinde 10 tane dosyanız var, bunların yedeğini direk almak istiyorsunuz ama 10 dosya şeklinde değilde tek rar haline getirip sonra bunu yapmak istiyorsunuz..

    maalesef ftp, yapısı gereği böyle bir işleme izin vermez. ftp de sadece basit dosyalama işleri mevcuttur. (kopyalama,silme,isim değiştirme,klasör oluşturma v.s.) ancak uzaktan sıkıştıramazsınız.

    ancak bir web uygulaması yaparsanız bu işlemler daha kolay olur. web uygulamanız ilgili klasördeki dosyaları zip olarak yedekleyebilir.. mantıklı olan bu.

    sıkıştırma için gzip i kullanabilirsin

    http://msdn.microsoft.com/en-us/libr...zipstream.aspx

    ya da sharpzip
    http://www.icsharpcode.net/OpenSourc.../Download.aspx

    masaüstü uygulaması yapmak zorundaysanız bilgisayarınıza indirip, sıkıştırıp tekrar upload etmelisiniz.

    iyi çalışmalar

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:32:12 -->-> Daha önceki mesaj 16:25:31 --

    Edit:
    forumlara baktım da
    yapılabiliniyormuş sanırım http://www.webhostgear.com/35.html
    mesela burada TAR başlığı altına bakın
    tar -cf archive.tar contents/


    ya da zip için

    zip -r yourzipfilename.zip directoryname


    ancak bu zip ya da tar komutları bildiğim kadarıyla ftp nin komutları değil.. araştırmanızı bu yönde yaparsanız belki ftp komutlarını sunucunuza yollayarak bu işi yaptırabilirsiniz
  • 24-02-2013, 16:37:28
    #3
    ertan2002 adlı üyeden alıntı: mesajı görüntüle

    tahmin yürüttüğümü söyleyeyim, ftp içinde 10 tane dosyanız var, bunların yedeğini direk almak istiyorsunuz ama 10 dosya şeklinde değilde tek rar haline getirip sonra bunu yapmak istiyorsunuz..
    Evet hocam tam olarak bunu yapmak istyorum backup programı yazıyorum. Aslında dosyaları tek tek indirip rar'lamayıda düşündüğüm verdiğin linklerdeki gibi fakat ftp komutlarıyla dizinleri listelerken dosya klasör ayrımı yapılamıyor çünkü ftp fonksiyonu sadece ftp'deki dosya ve klasörlerin sadece isimlerini listeliyor. ( Yani Ftp'deki bir path'in dosya yada klasör olduğunu ayırt edemiyor) Geçerli path'in dosya yada klasör olduğunu anlamak içinde path'in içinde "." kontrolü yaptırmam gerekiyor fakat bu durumda klasör ismindede "." olduğunu varsayarsak doğru sonuç alamıyoruz. Bu yüzden tek tek dosya ise indir klasör ise içindeki dosyaları indir tarzında kontrol yapmak zor geliyor ve tüm dizinin rar'ını indirmek daha mantıklı geliyor

    --R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 16:37:28 -->-> Daha önceki mesaj 16:34:48 --

    Evet gelmek istediğim konuda tam olarak buydu bu işlemi zip -r komutu kullanarak yapabiliyormuşuz fakat bu işlemi C#'ta tam olarak nasıl kullanabileceğimi kestiremedim
  • 24-02-2013, 17:10:57
    #4
    zip komutunun ftp de olduğunu sanmıyorum yani hiç görmedim de, harici bir şey olabilir ..neyse komut göndermek için
    sanırm sadece cmd kullanılıyor.

    http://stackoverflow.com/a/5554764/1022138

    burada da basit bi tool yapmışlar

    http://stackoverflow.com/a/2327884/1022138
    işini kolaylaştırır. alt yapısı da muhtemeln cmd dir ancak arplanda işliyordur.. incelemedim. bunu deneyebilirsin
  • 24-02-2013, 17:30:03
    #5
    Teşekkür ederim inceleyeceğim.
  • 24-02-2013, 18:05:42
    #6
    zip komutları ssh için hocam.
  • 24-02-2013, 21:01:17
    #7
    Metallica adlı üyeden alıntı: mesajı görüntüle
    zip komutları ssh için hocam.
    C# üzerinden ssh komutlarını kullanamazmıyım ?
  • 24-02-2013, 23:56:16
    #8
    aslında Cpanel'de yedek programı; size tar.gz uzantılı olarak bir paket veriyor.
    FTP fonksiyonlarıyla yapmanız imkansız. Ama ertan2002'nin ilk mesajındaki gibi araya iki üç php fonksiyonu sıkıştırmak şart.
  • 25-02-2013, 03:46:12
    #9
    burakoral adlı üyeden alıntı: mesajı görüntüle
    C# üzerinden ssh komutlarını kullanamazmıyım ?
    vps yada dedicated kullanıyorsanız kullabilirsiniz bazı hosting firmalarıda ücret karşılıgı ssh kullanım izni veriyor.