Как получить список файлов с FTP

Я пытаюсь получить список файлов с FTP. но вместо этого я получаю имя каталога, в котором сохранены файлы

    List<string> file_names = new List<string>();
    try
    {
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(Host + "Data");
        request.Method = WebRequestMethods.Ftp.ListDirectory;

        request.Credentials = new NetworkCredential(UserID, Password);

        FtpWebResponse response = (FtpWebResponse)request.GetResponse();

        Stream responseStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(responseStream);
        string files = reader.ReadToEnd();

        print(files); // prints "Data" instead of list of file names

        file_names = files.Split(new string[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries).ToList();


        Debug.Log($"Directory List Complete, status {response.StatusDescription}");

        reader.Close();
        response.Close();
    }
    catch(WebException e)
    {
        print(e.Message + "\tCould not get files from server");
    }

Что я делаю не так ?


person CrashCZ    schedule 09.03.2021    source источник


Ответы (1)


Я нашел эту стороннюю библиотеку FTP, которая значительно упрощает работу.

List<string> files = new List<string>();
    FtpClient client = new FtpClient("192.168.0.125", 2221, new NetworkCredential(UserID, Password));
    //client.Credentials = new NetworkCredential(UserID, Password);
    client.Connect();
    foreach(FtpListItem item in client.GetListing("/Data"))
    {
        if (item.Type == FtpFileSystemObjectType.File)
        {
            files.Add(item.Name);
            print(item.Name);
        }
            
    }
person CrashCZ    schedule 09.03.2021
comment
Попробуйте опубликовать свой ответ на один из вопросов, связанных выше. Поскольку ваш вопрос дублируется. - person Martin Prikryl; 09.03.2021