Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533

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

04.10.2018, 09:39. Показов 31840. Ответов 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
04.12.2018, 10:57  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от V_Monomax Посмотреть сообщение
почти, но он несет в себе функцию if(true) FistValue else SecondValue, и даже у него есть название, вопрос к вам какое?
фактически
C#
1
2
3
4
5
6
7
8
if(WithMinuts)
{
  return "yyyyMMddHHmm"; 
} 
else 
{
  return "yyyyMMdd";
}
Ну мы проверяем если значение и возращаем его либо с часами и минутами в противном случае только дату.
Цитата Сообщение от V_Monomax Посмотреть сообщение
еще больший бред.
смотри что такое
yyyy
MM
dd
HH
mm
в мат части.
и что такое
DateTime.ToString("yyyyMMddHHmm")
и чем оно отличается от
DateTime.ToString("yyyyMMdd")
yyyy - год
ММ - месяц
dd - дни
НН - часы
mm - минуты

C#
1
DateTime.ToString("yyyyMMddHHmm")
Формат даты с годами(2018), месяцем(12), день(04), часами(10), минутами(55)
C#
1
DateTime.ToString("yyyyMMdd")
Тут тож самое только БЕЗ часов и минут.

А с помощью ToString переводим это из формата DateTime в строковый формат.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 11:31
Цитата Сообщение от Damenikx Посмотреть сообщение
Ну мы проверяем если значение и возращаем его либо с часами и минутами в противном случае только дату.
какую дату???
public string DTFormat(bool WithMinuts)
с каких пор string - стал датой???
WithMinuts - какой тип???
где вы видите во всем методе DTFormat(bool WithMinuts) - хоть одно использование даты???
Вообще, что такое типы???
Как в c# можно преобразовать один тип в другой???
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 11:48  [ТС]
Ошибся. Не дату, а строку.

Добавлено через 4 минуты
Тип данных определяет внутреннее представление данных, множество значений, которые может принимать объект, а также допустимые действия, которые можно применять над объектом.

Цитата Сообщение от V_Monomax Посмотреть сообщение
Как в c# можно преобразовать один тип в другой???
Есть неявные преобразования.
Явные преобразования. Это явное указание типа.

Добавлено через 9 минут
Цитата Сообщение от V_Monomax Посмотреть сообщение
WithMinuts - какой тип???
Явный тип bool
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 11:51
Хорошо, теперь будем думать зачем нам
C#
1
2
3
4
public string DTFormat(bool WithMinuts)
{
  return WithMinuts? "yyyyMMddHHmm":"yyyyMMdd";
}
Вообще нужен?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 11:55  [ТС]
Я так думаю, что весь метод проверяет наличие в строке часы и минуты. Допустим если есть часы и минуты то - true если же нет - false, а результат записывает в DTFormat.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 12:10
Цитата Сообщение от Damenikx Посмотреть сообщение
Я так думаю, что весь метод проверяет наличие в строке часы и минуты. Допустим если есть часы и минуты то - true если же нет - false, а результат записывает в DTFormat.
не правильно думаете!
C#
1
2
3
4
5
6
7
8
9
10
11
public string DTFormat(bool WithMinuts)
{
     if(WithMinuts)
     {
       return "yyyyMMddHHmm"; 
     } 
     else 
     {
       return "yyyyMMdd";
     }
}
еще раз что делает этот метод, и для чего он нам нужен???

Добавлено через 2 минуты
подсказка:
Code
1
2
3
4
Публичная строка DTFormat(переменная типа логика СМинутами)
{
    если(СМинутами) вернуть "yyyyMMddHHmm" иначе вернуть "yyyyMMdd"
}
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 12:44  [ТС]
Если в строке есть минуты то вернуть "yyyyMMddHHmm" если нет то "yyyyMMdd". Возвращаем значение в зависимости от тоего есть в нём указание времени либо нет.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 13:57
Цитата Сообщение от Damenikx Посмотреть сообщение
Если в строке есть минуты
какие минуты???

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

Добавлено через 1 минуту
У нас файлы называются таким образом, что уже в названии они в себе содержат дату со временем. Допустим: 201812041402.txt
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 14:19
Цитата Сообщение от Damenikx Посмотреть сообщение
Так мы сами и указываем
хорошо, но только мы указываем что нам формат нужен с минутами или просто дата. Так?
Давайте сначала с вами сделаем алгоритмически, то что вы хотите получить, а потом реализуем в коде?
Для реализации последнего вам нужно:
Расписать текстом, что вы хотите что-бы делала программа. (Признаться честно, в голове каша, и я уже не понимаю что вы хотите сделать).
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 14:45  [ТС]
Итак!

Последний раз, когда я пытался сделать сам у меня получилось реализовать следующее:

1) Подключиться к ФТП-серверу на котором имеется большое количество папок с названиями. (Для более лёгкого восприятие пусть это будут названия городов). Москва, Волгоград, Киев, Ирак.
2) В каждой из папок с названием городов есть txt-файлы имя которых это дата и время. Например (201812041440).
3) У меня получилось получить список файлов лежащих на сервере после ввода названия города. Весь вывод я сделал в listBox. (Программа делается в WindowsForms).
4) Итак вопрос: с помощью метода dataTimePicker1 и dataTimePicker2 я задаю 2 даты со временем. Допустим первая дата это 2018/12/01/06:00 а вторая дата это 2018/12/04/15:00. Программа считывает все файлы в диапазоне от 2018/12/01/06:00 до 2018/12/04/15:00 и копирует на локальную машинку.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 15:34
Лучший ответ Сообщение было отмечено Damenikx как решение

Решение

Цитата Сообщение от Damenikx Посмотреть сообщение
Итак!
Давайте сформулируем цель и задачи:
Цель:
Мы должны скачать из папки ФТП с заранее известным именем (задается пользователем) диапазон файлов распределенный по имени.
Задачи:
1. Попросить пользователя указать нужную папку
2. Попросить указать пользователя диапазон времени
3. подключится к ФТП
4. Найти нужную папку
5. скачать с папки нужные файлы.

альтернатива:
1а. Запросить на ФТП все папки нужного уровня
2а. вывести пользователю на выбор
3а. после выбора пользователем папки, предложить выбрать диапазон дат
4а. подключится к ФТП
5а. Найти нужную папку
6а. скачать с папки нужные файлы.

Как видим набор задач достаточный для достижения поставленной цели.

Распишем в псевдокоде решение задач.


1. Запросить у пользователя имя папки
Проверить ввод пользователя
Если введенное значение не пустое тогда
Если папка существует на ФТП тогда
попросить пользователя ввести диапазон времени
иначе
Сообщить пользователю что такой папки не существует
иначе
Выдать сообщение пользователю что нужно ввести значение

2. Запрос у пользователя ввести диапазон времени

Если введенное значение диапазона больше 0 тогда
скачать файлы из диапазона
иначе скачать все файлы из папки/выдать сообщение пользователю об не возможности скачивать данные.

3. подключение к ФТП
Создать набор настроек.
Проверить наличие файлов на сервере

4.Найти нужную папку
Использовать настройки из 3
Проверить наличие папки на сервере

5.скачать с папки нужные файлы.
при помощи 3 и 4 проверить существование папки
Обратится к папке и получить детальные данные о папке.
List<string> именаФайлов
Для каждой деталь в детали
{
Если ПривестиКДате(деталь.Имя, без расширении имени файла) находится в заданном диапазоне тогда
именаФайлов.Добавить(деталь.Имя)
}
Если именаФайлов.Длина>0 тогда
скачать все именаФайлов
сообщить пользователю что именаФайлов.Длина файлов скачано
иначе сообщить пользователю об отсутствии файлов


Добавлено через 6 минут
альтернатива:

1а. Запросить на ФТП все папки нужного уровня
Сконфигурировать настройки подключения к ФТП с нужным уровнем доступа.
Запросить все папки на нужном уровне.

2а. вывести пользователю на выбор
полученное в 1а. вывести пользователю.

3а. после выбора пользователем папки, предложить выбрать диапазон дат
по нажатию на выведенное в 2а. открыть форму с диапазоном дат по нажатию кнопки одобрения, перейти к 4а.

4а. подключится к ФТП
Создать набор настроек.
Проверить наличие файлов на сервере

5а. Найти нужную папку
Использовать настройки из 3
Проверить наличие папки на сервере

6а. скачать с папки нужные файлы.

при помощи 4а и 5а проверить существование папки
Обратится к папке и получить детальные данные о папке.
List<string> именаФайлов
Для каждой деталь в детали
{
Если ПривестиКДате(деталь.Имя, без расширении имени файла) находится в заданном диапазоне тогда
именаФайлов.Добавить(деталь.Имя)
}
Если именаФайлов.Длина>0 тогда
скачать все именаФайлов
сообщить пользователю что именаФайлов.Длина файлов скачано
иначе сообщить пользователю об отсутствии файлов
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 15:38  [ТС]
Жесть. У меня явно мозгов для таких рассуждений не хватает)))

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

Добавлено через 2 минуты
Для простых алгоритмов (как у вас) я обычно все это держу в голове, когда алгоритм сложнее и более витиеватый, то тогда расписываю все на бумаге, и потом пошагово реализую. Собственно, это все используется при управлении проектами при написании в команде и больших проектов.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 16:07  [ТС]
А теперь надо каждый из пунктов по-очерёдно выполнять. Возможно ещё и отдельными классами для каждого пункта.

Добавлено через 39 секунд
Понятно, для больших. Мои то маленькие и не проекты даже, а программы для обучения
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 16:16
Цитата Сообщение от Damenikx Посмотреть сообщение
А теперь надо каждый из пунктов по-очерёдно выполнять.
Зависит от желания вами создать проект или так побаловать свой мозг размышлениями.
Цитата Сообщение от Damenikx Посмотреть сообщение
Возможно ещё и отдельными классами для каждого пункта.
Зависит от того как вы подходите, есть люди, которым надо просто написать, что-бы оно работало и на том ладно, такие обычно вообще стараются все сделать в одном методе. Есть люди как я, мне важен любой проект, пусть даже и учебный, потому что, потом (а это потом как практика показывает, наступает очень быстро) что-то подобное понадобится, и вуаля, оно уже почти готово, только нужно немного поправить, а для этого используем код, а значит он должен быть легко читаем, и понятен, поэтому разбиваем на классы, методы и даже на динамические библиотечки. Итог: скорость разработки приложений увеличивается с годами.
Цитата Сообщение от Damenikx Посмотреть сообщение
Понятно, для больших
А это не исключает наличие алгоритмики.
Цитата Сообщение от Damenikx Посмотреть сообщение
Мои то маленькие и не проекты даже, а программы для обучения
читай текст выше, мотай на ус, и по поводу псевдокода:
Цитата Сообщение от V_Monomax Посмотреть сообщение
Для простых алгоритмов (как у вас) я обычно все это держу в голове
Ну и как совет, такое делать надо всегда, так жить проще, и писать программы в не зависимости для чего вы это делаете, а еще более когда для себя и в целях обучения. Так что прежде чем писать программу, напишите ее в псевдокоде на листочке, пока не научитесь держать это все в голове, ну а для массивных проектов, тут однозначно надо расписывать, разрисовывать и ориентироваться на графику.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 16:21  [ТС]
Понятно. тогда есть смысл заняться, как проектом (хоть и для обучения).

Надо потренироваться. Такой вариант. Если я опишу Вам тут желаемый проект, а потом попробую разобрать его на алгоритм, а вы мне скажете получилось или нет.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 16:26
Цитата Сообщение от Damenikx Посмотреть сообщение
а вы мне скажете получилось или нет.
скажу, но думаю я раньше вмешаюсь в этот процесс, поэтому лучше сделать пошагово, сначала, обсудить проект, накидать его алгоритм, а затем приступать к реализации.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
04.12.2018, 16:42  [ТС]
Как скажете. Только вот по-поводу даты я бы хотел до конца разобраться. Не бросать же то, что я почти доделал)

Добавлено через 12 минут
Алгоритм работы моей программы сейчас таков:

1) Есть 2 текстБокса в которые я ввожу имя и пароль для ФТП - соеденения. (Мы с Вами это реализовали ранее в немного другой программе если помните. Я сделал рефакторинг и применил те знание и код, который Вы любезно мне предоставили)

2) Имя папки. Имя папки вводится в третий текстБокс (Имя города, например: Москва).

3) После ввода всех 3-х текстБоксов в листБокс1 выводится вся информация о файлах находящихся в папке с именем Москва, которая лежит на ФТП.

4) Пока не получается с датами =)
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
04.12.2018, 17:20
Цитата Сообщение от V_Monomax Посмотреть сообщение
5.скачать с папки нужные файлы.
при помощи 3 и 4 проверить существование папки
Обратится к папке и получить детальные данные о папке.
List<string> именаФайлов
Для каждой деталь в детали
{
Если ПривестиКДате(деталь.Имя, без расширении имени файла) находится в заданном диапазоне тогда
именаФайлов.Добавить(деталь.Имя)
}
Если именаФайлов.Длина>0 тогда
скачать все именаФайлов
сообщить пользователю что именаФайлов.Длина файлов скачано
иначе сообщить пользователю об отсутствии файлов
Фактически вам нужно это реализовать.

Добавлено через 19 секунд
Цитата Сообщение от Damenikx Посмотреть сообщение
Пока не получается с датами =)
Это я к этому.

Добавлено через 1 минуту
итак шаг первый нужно проверить, существует ли такая папка вообще (вдруг пользователь ошибся).
Это сделано?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2018, 17:20

Скачивание файла с 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;); Вот такой код...


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

Или воспользуйтесь поиском по форуму:
620
Закрытая тема Создать тему
Опции темы

Новые блоги и статьи
Жизня: рисунок укладки багажа, сделанный клодом
anaschu 21.08.2026
Сделал 15 снимков, он по снимкам сделал схему.
Был там один разговор по поводу свободы в материальном мире.
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 будильника: начало и конец рабочего дня. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru