Merhabalar arkadaşlar C# ile bir backup programı yapıyorum ftp'deki ana dizindeki tüm öğeler aşağıdaki kodu kullanarak görüntüleyebiliyorum .

string[] DosyaListesi;
StringBuilder result = new StringBuilder();
FtpWebRequest FTP;
try
{
    // Dosyaların listeleneceği ftp yolunu belirliyoruz
    FTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://alanadim.com"));
    // Dosya tranferinin Binary türden yapılacağını belirtiyoruz
    FTP.UseBinary = true;
    // Ftp bağlantısı için UserName ve Şifremizi belirtiyoruz
    FTP.Credentials = new NetworkCredential("kullanici", "pass");
    // Bu kısımda hangi işlemi yapacağımızı belirtiyoruz
    FTP.Method = WebRequestMethods.Ftp.ListDirectory;
    // Dosya listesini alıyoruz
    WebResponse response = FTP.GetResponse();
    // Aldığımız listeyi StreamReader ile her satırını okuyup dosya isimlerini ayırıyoruz
    StreamReader reader = new StreamReader(response.GetResponseStream());
    string line = reader.ReadLine();
    while (line != null)
    {
        result.Append(line);
        result.Append("\\n");
        line = reader.ReadLine();

    }

    result.Remove(result.ToString().LastIndexOf('\\n'), 1);
    reader.Close();
    response.Close();
    DosyaListesi = result.ToString().Split('\\n');
    for (int x = 0; x < DosyaListesi.Length; x++)  
    {
        // ve son olarak istediğimiz bir nesneye ekliyoruz. Aşağıda örnek olarak ListBox!a eklenmiştir.
        lbListe.Items.Add(DosyaListesi[x].ToString());

    }

}
catch (Exception ex)
{
    MessageBox.Show(ex.Message, "Hata");
}

Buradaki dosyaları download edip klasörlerinde alt klasörlerini kontrol edip tüm dosyaları download ettirmem gerekiyor bunun için istediğim path'in dosyamı klasörmü olduğunu nasıl anlayabilirim. Şimdiden Teşekkürler.

soruldu: 22 Şub '13, 02:44

truvali's gravatar image

truvali
1111
cevap kabul oranı: 0%

değiştirildi: 22 Şub '13, 03:26

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183


System.IO.Path.GetExtension metodu ile kontrol etmek mümkün.

     public bool IsDirectory(string directory)
        {
            if(directory == null)
            {
                throw new ArgumentOutOfRangeException(); //null kontrolü
            }
            else if(System.IO.Path.GetExtension(directory) == string.Empty)
  // Gelen adresin uzantısının kontrolü
            {
                return true; //Klasör
            }
            else
            {
                return false; //Dosya
            }
        }

Kaynak

permanent link

cevaplandı: 22 Şub '13, 02:53

Turgay%20Can's gravatar image

Turgay Can
8.3k63798
cevap kabul oranı: 18%

değiştirildi: 22 Şub '13, 03:20

Onu kullanmayı denedim fakat File.GetAttributes sınıfı ftp'deki yolu desteklemiyor "C:\Temp\MyFile.txt" tarzında bir yol istiyor.

(22 Şub '13, 02:56) truvali truvali's gravatar image

Cevap güncellendi.

(22 Şub '13, 03:18) Turgay Can Turgay%20Can's gravatar image

@J2EE , ftp den gelen değerler aslında dosya isimleri, dolayısıyla bunların dosya mı klasörmü oldugu bu şekilde anlasılmıyor. Dosyanın özelliklerini alabilmek için farklı dll ler kullanmak gerekiyor, mesela bunun gibi. Ama bu dll de ücretli.

(22 Şub '13, 03:24) AliRıza Adıyahşi ♦ AliR%C4%B1za%20Ad%C4%B1yah%C5%9Fi's gravatar image

Visual Studio iş yerinde kurulu olsa kontrolünü yapardım fakat ftp içinde dolaşırken sonuçta dosya ve klasörler arasında dolaşacak, her gelen dosya/yada klasörün uznatısı olup, olmadığını System.IO.Path.GetExtension metodu ile kontrol edebilir diye düşünüyorum.

(22 Şub '13, 03:32) Turgay Can Turgay%20Can's gravatar image

ilgin için teşekkür ederim aslında haklısın ftpden aldığım sadece dosya ve klasör isimleri bu yüzden attiribute'sini kontrol ettiremiyorum. Uzantı kontrolu yaptırabilirim fakat bu seferde klasörde "." karakteri kullanışmışsa sıkıntı yaratabilir ama başka yol yok sanırım.

(22 Şub '13, 03:39) truvali truvali's gravatar image

Aslında sunucudaki root klasörünün içindeki tüm dosyaları rarlayabilsem hiç birine gerek kalmayacak bunun bir yöntemi varmıdır bir bilgin varmı ?

(22 Şub '13, 03:51) truvali truvali's gravatar image

Eğer otantike olduğun kullanıcının yazma yetkisi varsa ftp içine ;

http://www.codeproject.com/Articles/37887/C-Zip-Files-and-or-Folders

buradaki tutorial işini görür bu konuda. Eğer yetki problemi olur ise, ftp'den indir localine orada ziple :) Burada ftp'den dosya downlaod etmek için örnek kkod mevcut incelemende fayda var. http://social.msdn.microsoft.com/Forums/en/ncl/thread/079fb811-3c55-4959-85c4-677e4b20bea3

(22 Şub '13, 07:22) Turgay Can Turgay%20Can's gravatar image
7 yorumdan 5 tanesi gösteriliyor hepsini göster
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×238
×6

Soruldu: 22 Şub '13, 02:44

Görüntüleme: 1,413 kez

Son güncelleme: 22 Şub '13, 07:22

powered by BitNami OSQA