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

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

04.10.2018, 09:39. Показов 33593. Ответов 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
10.10.2018, 15:46  [ТС]
Студворк — интернет-сервис помощи студентам
C#
1
2
3
var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressToDay)
 
if(response.StatusCode!=FtpStatusCode.CantOpenData)
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
10.10.2018, 15:49
Цитата Сообщение от Damenikx Посмотреть сообщение
C#
1
2
var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressToDay) 
if(response.StatusCode!=FtpStatusCode.CantOpenData)
уже хорошо, но у вас дата должна быть любой смотрите в сторону FullFTPAdressCurrentDate
остальное так как надо!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
10.10.2018, 16:20  [ТС]
C#
1
var ftp = settings.RequestToDirrectoryDetails(settings.FTPAdress + settings.CurrentDateFolderAdress(CurrentDate))
Добавлено через 11 минут
C#
1
var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressCurrentDate(CurrentDate);
Добавлено через 8 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Console.WriteLine("{0}|Начата загрузка файла", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
new FtpDownloader().Download();
Console.WriteLine("{0}|Загрузка файла окончена", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
 
bool CurDateFolderMayConnectt(DataTime CurrentDate, out string RMessage)
{
   ExceptMS = string.Empyty;
   var res = false;
   try
      {
var settings = new FTPSettings();
var ftp = settings.RequestToDirrectoryDetails(settings.FullFTPAdressCurrentDate(CurrentDate));
FtpWebResponse response = (FtpWebResponse) ftp.GetResponse();
 RMessage = response.StatusDescription;
if(response.StatusCode!=FtpStatusCode.CantOpenData)
{
res = true;
}
        }catch (WebException ex) 
      {
          RMEssage = string.Format("Сообщение об ошибке: {0}        StackTrace: {1}", ex.Message, ex.StackTrace);
      }
   return res;
}
Вот так у меня записано в мейне, но программа ругается, говорит:

Требуется }
Требуется определение типа или пространства имён, либо признак конца файла.

ругается на эту строку
C#
1
Console.WriteLine("{0}|Загрузка файла окончена", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
Добавлено через 6 минут
Но фигурные скобки проставлены везде (проверил)
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
10.10.2018, 18:17
Цитата Сообщение от Damenikx Посмотреть сообщение
у меня записано в мейне
Какой мейн, у вас этот код должен быть в FtpFilesInfo!!!

Добавлено через 2 минуты
Цитата Сообщение от Damenikx Посмотреть сообщение
Требуется определение типа или пространства имён, либо признак конца файла.
естественно, потому что в метод вы впихнули метод, вы чего? Методы и нужны что-бы выполняли конечное действие, при чем так что-бы каждый метод был минимальным по охватываемым сущностям.

Добавлено через 2 минуты
Цитата Сообщение от Damenikx Посмотреть сообщение
var ftp = settings.RequestToDirrectoryDetails(sett ings.FullFTPAdressCurrentDate(CurrentDat e)
не хватает закрывающей скобки, но в целом верно.
Цитата Сообщение от Damenikx Посмотреть сообщение
if(response.StatusCode!=FtpStatusCode.Ca ntOpenData)
{
res = true;
}
после этого надо еще добавить
C#
1
response.Close();
1
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 10:18
Damenikx, как ваши успехи?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 12:18  [ТС]
Здравствуйте! Только дополз до компьютера. Сейчас всё попробую и Вам сразу отпишусь!

Добавлено через 3 минуты
Так, добавил всё в класс FtpFilesInfo. Теперь, как я понимаю, метод нужно вызвать в мейне, правильно?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 13:31
Цитата Сообщение от Damenikx Посмотреть сообщение
Теперь, как я понимаю, метод нужно вызвать в мейне, правильно?
все верно, пока в мейне комментируйте
C#
1
2
3
4
5
/*
Console.WriteLine("{0}|Начата загрузка файла", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
new FtpDownloader().Download();
Console.WriteLine("{0}|Загрузка файла окончена", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
*/
и соответственно надо сделать
C#
1
2
3
4
5
6
7
8
Console.WriteLine("{0}|Тест", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
string Message;
var FolderCreated = new FtpFilesInfo().CurDateFolderMayConnectt(new DateTime(2018,10,4), out Message);//Дату установить существующей папки
Console.WriteLine("{0}|папка существует|{}|Ответ с сервера|{}", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"), FolderCreated, Message);
FolderCreated = new FtpFilesInfo().CurDateFolderMayConnectt(DateTime.Now, out Message);//Дату установить не существующей папки
Console.WriteLine("{0}|папка существует|{}|Ответ с сервера|{}", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"), FolderCreated, Message);
Console.WriteLine("{0}|Тест окончен", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"));
Console.Read();
Выполните это и посмотрим что он выводит (все из консоли выложить здесь).
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 14:03  [ТС]
Хорошо, сейчас сделаю

Добавлено через 15 минут
я забыл Вам сказать, я везде переписал на вчерашнюю дату.

Добавлено через 6 минут
И на фтп существует папка в которой лежат папки с датой, я там полагаю надо что-то добавить, потому что не хочет связываться с фтп. Сейчас я тут немного подумаю, переделаю, отпишусь.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 14:19
Цитата Сообщение от Damenikx Посмотреть сообщение
я забыл Вам сказать, я везде переписал на вчерашнюю дату.
глупо однажды сделав код, проверив его работоспособность, никогда больше к коду не касайся, кроме экстренных случаев и случаев когда код перестал быть нужен. По сути вы нарушили все что только возможно. Никогда не делайте так, хотите что-то изменить в работающем коде, пишите новый метод. Принцип Открытости/Закрытости гласит: класс должен быть открыт для расширения и закрыт для редактирования. По сути, так как вы сделали, никогда, никогда, ну абсолютно никогда, не делайте.

Добавлено через 1 минуту
если метод возвращает дату на сегодня, он и должен возвращать дату на сегодня, если метод возвращает на любую дату, то он и должен возвращать на любую дату.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 14:22  [ТС]
Будет мне уроком на будущее. Я понял, спасибо за совет.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 14:23
фактически, только так можно писать большие проекты, я никогда не переписываю уже существующие методы, в худшем случае помечаю код как
C#
1
[Obsolete("Не использовать")]
по сути, идеально, если написал код, и забыл про него.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 14:23  [ТС]
Да и вина эта не моя, сказали, что ошиблись с постановкой задачи
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 14:32
Цитата Сообщение от Damenikx Посмотреть сообщение
Да и вина эта не моя, сказали, что ошиблись с постановкой задачи
и что, теперь код весь кромсать, тем более что у вас достаточно методов, для того что-бы реализовать на любую дату!

Добавлено через 1 минуту
Цитата Сообщение от Damenikx Посмотреть сообщение
Будет мне уроком на будущее
без падений, не бывает взлетов.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 14:34  [ТС]
Цитата Сообщение от V_Monomax Посмотреть сообщение
и что, теперь код весь кромсать, тем более что у вас достаточно методов, для того что-бы реализовать на любую дату!
Хорошо, я понял, я переделаю проект, создав новый.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 14:46
Цитата Сообщение от Damenikx Посмотреть сообщение
Хорошо, я понял, я переделаю проект, создав новый.
не делайте этого!!!

Добавлено через 1 минуту
Давайте проведем ревизию вашего кода, выкладывайте класс настроек! Будем смотреть, что нужно откатить, а что добавить, с учетом того что папку надо скачивать на вчера.

Добавлено через 3 минуты
Цитата Сообщение от V_Monomax Посмотреть сообщение
: класс должен быть открыт для расширения и закрыт для редактирования. По сути, так как вы сделали, никогда, никогда, ну абсолютно никогда, не делайте.
Цитата Сообщение от V_Monomax Посмотреть сообщение
По сути, так как вы сделали, никогда, никогда, ну абсолютно никогда, не делайте.
похоже что вы не прочли этого, раз вы пишите
Цитата Сообщение от Damenikx Посмотреть сообщение
Хорошо, я понял, я переделаю проект, создав новый.
Зачем? У вас все почти готово, возможно нужно чуть окатить код, и дополнить, вот и все.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 14:49  [ТС]
Как скажете, отпишусь, как откачу.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 14:50
Цитата Сообщение от Damenikx Посмотреть сообщение
Как скажете, отпишусь, как откачу.
жду.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 15:14  [ТС]
Откатил всё до того момента, как было.

Добавлено через 2 минуты
Запустил Ваш тест.

C#
1
Console.WriteLine("{0}|папка существует|{}|Ответ с сервера|{}", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"), FolderCreated, Message)
При компиляции выдаёт ошибку следующего характера:

Входная строка имела неверный формат.
При преобразовании строки в дату\вермя (DateTime) выполните синтаксичкеский разбор строки, чтобы получить дату перед помещением каждой переменной в объект Дата/время
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
11.10.2018, 15:57
ошибся
C#
1
Console.WriteLine("{0}|папка существует|{1}|Ответ с сервера|{2}", DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss"), FolderCreated, Message)
сосбcтвенно, что в этом коде происходит?
чтобы не писать
C#
1
Console.WriteLine( DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")+"|папка существует|"+FolderCreated+"|Ответ с сервера|"+Message);
согласитесь это не удобно, я использовал перегрузку метода Console.WriteLine
C#
1
Console.WriteLine(string, params object[]);
по сути, все что идет после "{0}|папка существует|{1}|Ответ с сервера|{2}" набор объектов, в фигурных скобках помечено, куда вставлять объекты.

Добавлено через 25 минут
Damenikx, ну что получилось?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
11.10.2018, 16:27  [ТС]
Пока чуть-чуть занят, проверю чуть позже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.10.2018, 16:27

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
200
Закрытая тема Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru