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

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

04.10.2018, 09:39. Показов 31706. Ответов 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
Закрытая тема Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
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