Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.85/117: Рейтинг темы: голосов - 117, средняя оценка - 4.85
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533

Скачивание папки с FTP - сервера по актуальной дате

04.10.2018, 09:39. Показов 31691. Ответов 897
Метки ftp, tls (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Возможно ли реализовать скачку с фтп папки в которой находятся файлы, папок много, а скачать файлы нужно из той папки, которая названа сегодняшней датой
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.10.2018, 09:39
Ответы с готовыми решениями:

Скачивание папки с FTP - сервера по актуальной дате (2)
Продолжение темы https://www.cyberforum.ru/csharp-net/thread2329455.html var mStr = "20181206_20-15-30.txt"; var dtAr =...

Скачивание папок с FTP-сервера
всем приветик ! подскажите плиииз ! есть батник он подключается к фтп и копирует оттуда файлы все ! open 89.253.247.10 metko ...

Скачивание файла с FTP-сервера
Здравствуйте. Подскажите как загрузить файл с сервера по ftp?

897
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 09:06  [ТС]
Студворк — интернет-сервис помощи студентам
У нас там несколько методов, которые в совокупности и создаю полный путь к папке.
Сейчас...

Добавлено через 1 минуту
C#
1
2
Public string FullFTPAdressCurrentDate(DateTime CurrentDate)
{return FTPAdress + CurrentDateFolderAdress(CurrentDate);}
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 09:54
Цитата Сообщение от Damenikx Посмотреть сообщение
C#
1
2
Public string FullFTPAdressCurrentDate(DateTime CurrentDate) 
{return FTPAdress + CurrentDateFolderAdress(CurrentDate);}
все правильно!
А какой метод формирует запрос к фтп для получения информации о содержимом папки?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 10:01  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
public List<string> CurDateFileNames(DateTime CurDate)
            {
                var res = new List<string>(); 
                foreach (var dt in CurDateDirectoryDetails(CurDate)) 
                {                   
                    var Sarr = dt.Split(new char[]{char.Parse(" ") }, StringSplitOptions.RemoveEmptyEntries); 
                    if (Sarr.Length > 8 && Sarr[8].Contains(".")) 
                    {
                        res.Add(Sarr[8]);
                    }
                }
                return res; 
            }
Добавлено через 1 минуту
Стоп, не тот

Добавлено через 55 секунд
Прошу прощения, ошибочка.

Добавлено через 2 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public List<string> DirectoryDetailsToDay
        {
            get
            {
                var res = new List<string>(); //создаём перенную res в который будем заносить результат теста DirectoryDetailsToDay.
                var settings = new FTPSettings(); //объявляем переменную settings
                var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressToDay); //объявляем переменную ftp. Формируем запрос к фтп-серверу и объявлем адрес папки на произвольную дату.
                var response = (FtpWebResponse)ftp.GetResponse();//объявляем переменную responce, заносим информацию об ответе серевера.
                var responseStream = response.GetResponseStream();//объявляем переменную responseStream заносим информацию об ответе ФТП-сервера.
                var reader = new StreamReader(responseStream);
 
                while (!reader.EndOfStream) //объявляём цикл while в котором определяем конец файла.
                {
                    res.Add(reader.ReadLine());//считывеаем информацию в цикле до тех пор, пока информация не закончится.
                }
                responseStream.Close(); //прерываем занесение информации в responseStream.
                response.Close(); //прерываем соединение с фтп-сервером.
                reader.Close(); //прерываем работу StremReader.
                return res;//возвращаем значение res
            }
        }
Добавлено через 18 секунд
Вот этот
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 10:08
Цитата Сообщение от Damenikx Посмотреть сообщение
Вот этот
ни этот! и не тот что первым указали!
Нам нужен запрос на детальную информацию папки по заданному адресу! (попробуйте перевести на английский выделенное жирным)
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 10:12  [ТС]
Я понял!

C#
1
2
3
4
5
6
7
8
9
public List<string> DirectoryDetailsToDay
        {
            get
            {
                var res = new List<string>(); //создаём перенную res в который будем заносить результат теста DirectoryDetailsToDay.
                var settings = new FTPSettings(); //объявляем переменную settings
                var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressToDay); //объявляем переменную ftp. Формируем запрос к фтп-серверу и объявлем адрес папки на произвольную дату.
                var response = (FtpWebResponse)ftp.GetResponse();//объявляем переменную responce, заносим информацию об ответе серевера.
                var responseStream =
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 10:14
Цитата Сообщение от Damenikx Посмотреть сообщение
Я понял!
не поняли!
мне нужен метод формирующий (возвращающий) запрос к фтп для получения детальной информации о содержимом папки!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 10:22  [ТС]
Я вам не то отправил. Точнее то, но оно почему то не то. Секунду...

Добавлено через 1 минуту
C#
1
2
3
4
5
6
7
8
9
public FtpWebRequest RequestToDirrectoryDetails(string FolderAdress)
            {
                var res = (FtpWebRequest)FtpWebRequest.Create(FolderAdress); ///создаём соединение с адресом фтп
                res.Credentials = new NetworkCredential(UserFTP, PwdFTP); ///логин, пароль
                res.KeepAlive = false;///не держим соединение после выполнения запроса
                res.UseBinary = true;///тип данных для передачи
                res.Method = WebRequestMethods.Ftp.ListDirectoryDetails; ///получаем список файлов на, которые находятся на фтп - сервере, в папке с текущей даты
                return res; //возвращаем значение res
            }
Добавлено через 23 секунды
Вот енто я имел ввиду!

Добавлено через 1 минуту

Не по теме:

Кусок откуда то вырвало, и отправило. БрЭд!

0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 10:48
Цитата Сообщение от Damenikx Посмотреть сообщение
Вот енто я имел ввиду!
тогда правильно!
Итак, ваша задача сформировать в методе CurDateDirectoryDetails(DateTime CurDate) запрос к серверу, на получение детальной информации по указанной дате.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 11:00  [ТС]
C#
1
2
3
4
5
6
7
8
9
public FtpWebRequest CurDateDirectoryDetails(string CurrentFolderAdress)
            {
                var res = (FtpWebRequest)FtpWebRequest.Create(CurrentFolderAdress); ///создаём соединение с адресом фтп
                res.Credentials = new NetworkCredential(UserFTP, PwdFTP); ///логин, пароль
                res.KeepAlive = false;///не держим соединение после выполнения запроса
                res.UseBinary = true;///тип данных для передачи
                res.Method = WebRequestMethods.Ftp.ListDirectoryDetails; ///получаем список файлов на, которые находятся на фтп - сервере, в папке с текущей даты
                return res; //возвращаем значение res
            }
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 11:05
Damenikx, вернемся к договоренностям, у нас CurDateDirectoryDetails(DateTime CurDate) - возвращает набор строк с подробностями содержимого папки, зачем вы его сделали запросом, нам вполне достаточно того что все что вы написали делает класс FTPSettings его метод RequestToDirrectoryDetails, нам метод CurDateDirectoryDetails(DateTime CurDate) нужен в классе FtpFilesInfo!!!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 11:07  [ТС]
Ага, я понял, сейчас буду думать.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 11:08
Цитата Сообщение от Damenikx Посмотреть сообщение
Ага, я понял, сейчас буду думать.
пора уже сделать
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 11:16  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
пора уже сделать
Так это вы профи, я то ещё зелёный

Тут уже столько метод, что совсем запутался!

Добавлено через 1 минуту
Во-первых нам надо создать метод
C#
1
CurDateDirectoryDetails
с параметром CurDate.

Добавлено через 1 минуту
Потом нам надо обратиться к методу RequestToDirrectoryDetails и забрать оттуда информацию, которую этот метод вытиягивает из ФТП.

Добавлено через 3 минуты
Чтобы это сделать нам нужна переменная в которую мы запишем эту информацию, которая в последствии вернёт её в метод CurDateDirectoryDetails

Добавлено через 11 секунд
У меня правильный ход мыслей?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 11:24
Цитата Сообщение от Damenikx Посмотреть сообщение
Во-первых нам надо создать метод
правильно, вопрос только где?
Цитата Сообщение от Damenikx Посмотреть сообщение
Потом нам надо обратиться к методу RequestToDirrectoryDetails и забрать оттуда информацию, которую этот метод вытиягивает из ФТП.
не совсем верно, нам надо создать экземпляр класса настроек и при помощи него сформировать:
1. адрес к которому нам надо обратится
2. сформировать запрос на получение детальной информации по заданному адресу
Цитата Сообщение от Damenikx Посмотреть сообщение
Чтобы это сделать нам нужна переменная в которую мы запишем эту информацию, которая в последствии вернёт её в метод CurDateDirectoryDetails
правильно, с нее лучше и начинать, после того как создали метод.
Цитата Сообщение от Damenikx Посмотреть сообщение
У меня правильный ход мыслей?
Получается что не совсем, но направление верное
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 11:32  [ТС]
Во! Я почти смог! Всё, пока без подсказок, попытаюсь хоть что-то сделать сам!

Добавлено через 5 минут
Итак!

Создал класс:
C#
1
2
3
4
5
public List<string> CurDateDirectoryDetails (CurDate)//создаём метод
{
get
{
var settings = new FTPSettings(); //эт наша перенная которая содержит настроки FTPSettings
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 11:36
Цитата Сообщение от Damenikx Посмотреть сообщение
Во! Я почти смог! Всё, пока без подсказок, попытаюсь хоть что-то сделать сам!
жду!

Добавлено через 1 минуту
Цитата Сообщение от Damenikx Посмотреть сообщение
Создал класс:
у вас классы, есть, наверное вы создали метод?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 12:03  [ТС]
Да, оговорился, метод и переменную.

Теперь нам нужна ещё одна переменная, чтобы засунуть туда метод RequestToDirrectoryDetails

Добавлено через 4 минуты
Я создал вторую перемунную, в которой мы будем содержать информацию по адресу на текущую дату

C#
1
var takesettings = settings.RequestToDirrectoryDetails(settings.FullFTPAdressCurrentDate);
Добавлено через 4 минуты
У меня получилось следующее:

C#
1
2
3
public List<string> CurDateDirectoryDetails (DateTime CurrentDate)
var settings = new FTPSettings();
var takesettings = settings.RequestToDirrectoryDetails(settings.FullFTPAdressCurrentDate(CurrentDate));
Добавлено через 6 минут
Окончательно осталось так.
C#
1
2
3
4
5
public List<string> CurDateDirectoryDetails (DateTime CurrentDate)
var res = new List<string>();
var settings = new FTPSettings();
var takesettings = settings.RequestToDirrectoryDetails(settings.FullFTPAdressCurrentDate(CurrentDate));
return res
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 12:04
Цитата Сообщение от Damenikx Посмотреть сообщение
var settings = new FTPSettings(); //эт наша перенная которая содержит настроки FTPSettings
Вообще-то это экземпляр класса. Переменной его конечно называть можно, но правильнее экземпляр класса.
Сразу скажу
Цитата Сообщение от Damenikx Посмотреть сообщение
get {
здесь у вас ошибка!
Цитата Сообщение от Damenikx Посмотреть сообщение
public List<string> CurDateDirectoryDetails (CurDate)//создаём метод
и здесь тоже ошибка!
В первом случае вы используете получение свойсво в методе (вы создали метод, а не свойство). Вообще применеие конструкции get - использовалось у нас с вами в свойствах, в данном случае мы создаем метод.
Во втором случае для переменной CurDate - не указан тип.
Цитата Сообщение от Damenikx Посмотреть сообщение
var takesettings = settings.RequestToDirrectoryDetails(sett ings.FullFTPAdressCurrentDate);
это правильно, но я бы название переменной заменил либо на ftp, либо request, что-бы потом не было путаницы.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
19.10.2018, 12:06  [ТС]
Пока вы писали пост, я уже подумал и переделал вот окончательный вариант

C#
1
2
3
4
5
public List<string> CurDateDirectoryDetails (DateTime CurrentDate)
var res = new List<string>();
var settings = new FTPSettings();
var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressCurrentDate(CurrentDate));
return res
1
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
19.10.2018, 12:11
Цитата Сообщение от Damenikx Посмотреть сообщение
Окончательно осталось так.
хорошо! только пока у нас
Цитата Сообщение от Damenikx Посмотреть сообщение
return res
на выходе будет давать пустое множество.
Теперь нам надо получить ответ от сервера фтп, послав ему запрос, после чего полученный поток ответа считать и разложить в нашем листе, и только после этого возвращать наш список информации.

Добавлено через 3 минуты
Цитата Сообщение от Damenikx Посмотреть сообщение
Пока вы писали пост, я уже подумал и переделал вот окончательный вариант
Ну вот хорошо, уже что-то у вас и самостоятельно получается я даже немного перестаю поспевать за вами. Ну что-же, давайте поочередно пройдемся по написанному ранее посту.
Итак, вопрос: как нам получить ответ от сервера фтп?
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.10.2018, 12:11

Скачивание файла с ftp сервера
Привет! Решил попробовать написать систему обновления для своей программы. Есть вот такая идея: создать сайт и вручную залить по ftp на...

Скачивание каталога с FTP сервера
Доброго времени суток. Работаю с FTP сервером в C# при помощи библиотеки BytesRoad.Net.Ftp. Появилась необходимость скачивать ВЕСЬ каталог...

Скачивание файлов с FTP сервера на локальный ЖД
Здравствуйте. Возникла проблема, возможно глупая и её решение должно быть элементарным, но всё же :) Добавлено через 9 минут ...

Скачивание файла с FTP-сервера с использованием Wget
Доброго времени суток! Задача - необходим батник чтобы он: 1. Скачивал необходимый файл с ftp(хранилище можем подобрать иное) 2....

Скачивание папки с удаленного сервера
WebClient wb = new WebClient(); wb.DownloadFile(&quot;https://cloud.mail.ru/public/46F4/Eqhw66Kb2&quot;, @&quot;C:\test\sandbox&quot;); Вот такой код...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
440
Закрытая тема Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru