У меня была такая же проблема. Я работал от Хьюс ответ. Вам нужно сделать FTPRequest вроде:
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
возьмите его из потокового ридера и вставьте в строку
StreamReader reader = new StreamReader(responseStream);
string directoryRaw = null;
try { while (reader.Peek() != -1) { directoryRaw += reader.ReadLine() + "|"; } }
catch (Exception ex) { Console.WriteLine(ex.ToString()); }
когда вы напечатаете это, оно будет выглядеть так:
| -rw-r - r-- 1 пользователь 1699 1 июня 2015
404.shtml
| drwxr-xr-x 2 user user 4096 8 сен 19:39 cgi-bin
| drwxr-xr-x 2 user user 4096 3 ноября 10:52 css
Они разделены | так что это будет разделителем для строки split
если он начинается с d, а не с - то это каталог, в противном случае это файл.
все они имеют одинаковый размер перед именем файла, поэтому создайте новую строку для каждой из этих строк, начиная с позиции 62 до конца, и это будет имя файла.
Надеюсь, это поможет