Загрузить/скачать файл по FTP протоколу - C#

Узнай цену своей работы

Формулировка задачи:

Господа, будьте добры, необходим рабочий пример. Заранее всем большое спасибо! Не могу найти нормальный рабочий пример..

Решение задачи: «Загрузить/скачать файл по FTP протоколу»

textual
Листинг программы
public static String[] FTPListTree(String FtpUri, String User, String Pass) {
 
    List<String> files = new List<String>();
    Queue<String> folders = new Queue<String>();
    folders.Enqueue(FtpUri);
 
    while (folders.Count > 0) {
        String fld = folders.Dequeue();
        List<String> newFiles = new List<String>();
 
        FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(fld);
        ftp.Credentials = new NetworkCredential(User, Pass);
        ftp.UsePassive = false;
        ftp.Method = WebRequestMethods.Ftp.ListDirectory;
        using (StreamReader resp = new StreamReader(ftp.GetResponse().GetResponseStream())) {
            String line = resp.ReadLine();
            while (line != null) {
                newFiles.Add(line.Trim());
                line = resp.ReadLine();
            }
        }
 
        ftp = (FtpWebRequest)FtpWebRequest.Create(fld);
        ftp.Credentials = new NetworkCredential(User, Pass);
        ftp.UsePassive = false;
        ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
        using (StreamReader resp = new StreamReader(ftp.GetResponse().GetResponseStream())) {
            String line = resp.ReadLine();
            while (line != null) {
                if (line.Trim().ToLower().StartsWith("d") || line.Contains(" <DIR> ")) {
                    String dir = newFiles.First(x => line.EndsWith(x));
                    newFiles.Remove(dir);
                    folders.Enqueue(fld + dir + "/");
                }
                line = resp.ReadLine();
            }
        }
        files.AddRange(from f in newFiles select fld + f);
    }
    return files.ToArray();
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.5 из 5