Prosta klasa obsługująca FTP

0

Witam.

Piszę klasę, która obsługuje w prosty sposób połączenie FTP (logowanie, stan połączenia, wysyłanie, pobieranie, wyświetlenie listy plików i katalogów), jednak moje doświadczenie w C# jest małe. Korzystając z dokumentacji, napisałem poniższy kod:

namespace WpfApplication1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void logButton_Click(object sender, RoutedEventArgs e)
        {
            FTP_Connection polaczenie = new FTP_Connection(loginBox.Text, hasloBox.Text, hostBox.Text);
            stanPolaczenia.Text = (polaczenie.Stan_Polaczenia() == true ? "Połączono" : "Nie połączono");
            if(stanPolaczenia.Text == "Połączono") logButton.Content = "Rozłącz";
        }
    }

    public class FTP_Connection
    {
        private string login;
        private string haslo;
        private string host;
        private Uri polaczenie;
        private FtpWebRequest request;
        private HttpWebResponse response;

        public FTP_Connection(string log, string has, string hos)
        {
            this.login = log;
            this.haslo = has;
            this.host = "ftp://" + hos;
            polaczenie = new Uri(host);
            request = (FtpWebRequest)WebRequest.Create(polaczenie);
            request.Credentials = new NetworkCredential(login, haslo);
        }
        private void Rozlacz()
        {
        }
        public bool Stan_Polaczenia()
        {
           response = (HttpWebResponse)request.GetResponse();
           return response.IsMutuallyAuthenticated;
        }
        private void Pobierz()
        {
        }
        private void Wyslij()
        {
        }
            
    }
}

Niestety, podczas logowania program zwyczajnie informuje mnie o błędzie systemu. Jeśli to możliwe, proszę o wskazówki, co zrobić, aby prawidłowo wykonać operację logowania.

0

A jaki to błąd?

0

response = (HttpWebResponse)request.GetResponse(); - Żądany identyfikator URI jest nieprawidłowy dla tego polecenia FTP.

URI ma postać ftp://nazwa_hosta, więc nie mam pojęcia, dlaczego jest to źle.

0

Dzięki! Wystarczyło przed wykonaniem metody GetResponse ustawić wartość request.Method np. na WebRequestMethods.Ftp.ListDirectory;
Sprawa rozwiązana.

1 użytkowników online, w tym zalogowanych: 0, gości: 1