Piszę program korzystający z serwera FTP z poświadczeniami. Próbuję pobrać listy katalogów z serwera, ale kiedy się do linii:Łączenie serwera FTP z poświadczeniami
string line = reader.ReadLine();
ciąg że dostanę zawiera tylko: „Nie można otworzyć \” host: „”/LIB1 \
Jeśli spróbuję uzyskać kolejną linię, zostanie zgłoszony kolejny wyjątek: Serwer zdalny zwrócił błąd: (550) Plik niedostępny (np. Plik nie został znaleziony, brak dostępu).
Wiem na pewno (przy użyciu innej aplikacji ftp), że katalog "lib1" istnieje na serwerze ftp, a moje poświadczenia (nazwa użytkownika i hasło) są poprawne.
Oto mój kod:
public class FTPClient
{
public string UserName { get; set; }
public string Password { get; set; }
public string IpAddress { get; set; }
public int Port { get; set; }
public FTPClient(string _userName, string _password, string _address, int _port)
{
UserName = _userName;
Password = _password;
IpAddress = _address;
Port = _port;
}
public void GetDirectoriesList(string _path)
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://" +
IpAddress + _path));
request.UseBinary = true;
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(UserName, Password);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
string line = reader.ReadLine();
while (line!=null)
{
... //do something with line
line = reader.ReadLine();
}
...
reader.Close();
response.Close();
}
i używam go w następujący sposób:
FTPClient ftpClient = new FTPClient("user1", "pass1", "192.168.2.110", 21);
string dirList = ftpClient.GetDirectoriesList("/lib1");
ktoś może rozpoznać ten problem?
bardziej ogólne pytanie o uzyskanie listy katalogów z serwera FTP w C#: http://stackoverflow.com/questions/3298922/how-to-list -directory-content-with-ftp-in-c –
użyj niestandardowego sprawdzania poprawności certyfikatu, zobacz https://stackoverflow.com/questions/5109752/use-c-sharp-to-get-an-smtp-server- certyfikat – syed
To pytanie jest dość niejasne - czy po prostu pytasz o sposób połączenia się z serwerem FTP za pomocą poświadczeń, czy też do debugowania tego konkretnego kodu? Czy jesteś otwarty na rozwiązania wykorzystujące biblioteki, takie jak [FluentFTP] (https://github.com/robinrodricks/FluentFTP)? Czy odczytanie pierwszej linii daje niepoprawny wynik (co mówisz w drugim zdaniu) lub rzuca wyjątek (co sugerujesz, kiedy mówisz, że drugie wywołanie "ReadLine" rzuca * inny * wyjątek)? Tutaj jest za dużo nieusuwalnie błędnych; Głosuję, aby zamknąć. –