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

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

04.10.2018, 09:39. Показов 31695. Ответов 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
22.10.2018, 15:23  [ТС]
Студворк — интернет-сервис помощи студентам
Что-то я не совсем понимаю.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 15:31
Цитата Сообщение от Damenikx Посмотреть сообщение
Что-то я не совсем понимаю.
что конкретно?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
22.10.2018, 15:41  [ТС]
По-поводу внизу и вверху)))
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
22.10.2018, 15:50
Цитата Сообщение от Damenikx Посмотреть сообщение
По-поводу внизу и вверху)))
Низ - это уровень настроек.
средний уровень - уровень получения информации о файлах
Верхний уровень - скачивание файла.

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

1) Чтобы не ломать тот код, который у нас уже есть я решил перетянуть ту часть, которая мне необходима в новую программу.
2) Решил поработать с ReadLine, во-первых, чтобы разобраться в его работе, а во-вторых, на мой взгляд это будет слегка проще в использовании для конечного пользователя.
3) Первым я решил, пока, организовать хотя-бы поиск необходимых файлов на фтп по заданному имени и дате, а потом уже попробовать реализовать скачку.

Тут возникает вопрос. Если будут вопросы, можно ли к Вам обратиться?
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
23.10.2018, 10:23
Цитата Сообщение от Damenikx Посмотреть сообщение
Тут возникает вопрос. Если будут вопросы, можно ли к Вам обратиться?
конечно!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
23.10.2018, 11:26  [ТС]
Ура

Так вот!
Я оставил наш прошлый класс FtpSettings (чтобы не путаться переименовал в FtpConnectionsSettings), это наши настройки для подключение к фтп. Я убрал оттуда ту часть, которая была завязана на дате, чтобы не путаться.

Затем я перешёл к FtpFilesInfo. Сейчас работаю с ним.

У меня к вам сразу возник вопрос. Раз уж класс, который получает информацию о том, что у нас лежит на фтп, по сути своей - готов. Я решил его пока не трогать (что касается настроек ибо там для меня самое сложное).

Я создал ещё один класс, отдельный FtpInSearch
Здесь я планирую сделать ту часть, которая отвечает за ввод данных пользователем, затем его прикрутить к FtpFilesInfo чтобы получать информацию а том, что лежит на фтп. А для этого мне надо организовать ввод и поиск.

Помогите пожалуйста разобраться с вводом данных. Никогда ещё этим не промышлял в таких маштабах (не считая "введите х: , введите у

Добавлено через 2 минуты
И у меня проблема с организационной политикой. Не знаю с чего начать и с какого класса начинать работу.

Добавлено через 8 минут
Самое главное забыл

Надо в WindowsFroms

Добавлено через 18 секунд
Тут вообще тёмный лес

Добавлено через 24 минуты
Что-то я уже и сам запутался

Надо сделать всё поочерёдно, чтобы самому разобраться.

Итак: Для начала я сделал форму и добавил кнопочку, в кнопку добавлю обработку подключения к фтп-серверу, затем добавлю TextBox, чтобы вывести результат того, что лежит на сервере. Если получится отпишусь Если нет, всё равно отпишусь))

Добавлено через 19 минут
Нашёл вот это: Архитектура ПО в WinForms (FAQ & HowTo)

Пошёл я учить и зубрить
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
23.10.2018, 12:34
Цитата Сообщение от Damenikx Посмотреть сообщение
Для начала я сделал форму и добавил кнопочку,
не с того начали
Цитата Сообщение от Damenikx Посмотреть сообщение
в кнопку добавлю обработку подключения к фтп-серверу
уводил я вас от этого, уводил, и вы вернулись обратно.
Цитата Сообщение от Damenikx Посмотреть сообщение
FtpInSearch
вообще ни к чему, вам метод CurDateDirectoryDetalis(DateTime CurDate) - должен быть примером, менять его не надо, вам по сути надо сообразить, как все то что написано в том методе, использовать для ваших целей (там менять то практически ничего не надо, только понять, что вам нужно задать правильно адрес папки (который вы кстати можете запросить у пользователя). Все Там не надо мудрить, там достаточно по косточкам разложить метод, понять что все есть и действовать!

Добавлено через 1 минуту
Цитата Сообщение от Damenikx Посмотреть сообщение
Надо в WindowsFroms
тогда, я бы вообще вынес методы работы с ФТП, в отдельную библиотечку, и коннектил бы их к проекту формы и проекту консоли.

Добавлено через 31 секунду
Цитата Сообщение от V_Monomax Посмотреть сообщение
я бы вообще вынес методы работы с ФТП, в отдельную библиотечку
не забывая делать классы публичными.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
23.10.2018, 15:54  [ТС]
Да я вот сижу, разбираюсь, не могу даже textBox к кнопке привязать.

Добавлено через 15 минут
УРА!!! Я добился вывода в MessageBox того, что лежит на ФТП! =)

Добавлено через 1 час 54 минуты
У меня опять к вам вопросы по поводу получения информации из папки. (Всё, что я сейчас делаю это не для работы, это для моего же понимания)
Я прикрутил textBox1 - он мне нужен для того, чтобы я в нём указывал имя папки из которой список файлов надо отправить в listBox.

Но я не понимаю, как оно всё между собой связывается! Подскажите?

Добавлено через 3 минуты
В методе FTPSettings я добавил метод, который вытягивает из textBox информацию, которую ввёл пользователь.
Добавил метод FTPFullAdress

C#
1
2
3
4
public string FTPFullAdress
{
get{return FTPAdress + textBox1.Text;}
}
Изменил это в методе CurDateDirectoryDetails(DateTime CurrentDate), но он почему-то не подхватывает(

Добавлено через 38 минут
Я уже голову сломал не могу вытянуть не логин ни пароль.

У нас был метод UserFTP
C#
1
2
3
4
public string UserFTP
{
get{return textBox2.Text;}
}
Добавлено через 33 секунды
Пытаюсь вытянуть значение из текстбокса НИ В КАКУЮ! ПРОСТО ППЦ!!!

0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 09:25
Цитата Сообщение от Damenikx Посмотреть сообщение
Изменил это в методе CurDateDirectoryDetails(DateTime CurrentDate), но он почему-то не подхватывает(
не надо менять уже написанные методы, а нужно создавать новые:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public List<string> CurFolderDirectoryDetails(string CurFolderPath)
{                
                var res = new List<string>(); 
                var settings = new FTPSettings(); 
                var ftp = settings.RequestToDirrectoryDetails(settings.FTPAdress +CurFolderPath);// вот где нужно поменять, дабы получит ответ на ваш вопрос.
                var response = (FtpWebResponse)ftp.GetResponse();
                var responseStream = response.GetResponseStream();
                var reader = new StreamReader(responseStream);
 
                while (!reader.EndOfStream) 
                {
                    res.Add(reader.ReadLine());
                }
                responseStream.Close(); 
                response.Close(); 
                reader.Close(); 
                return res;
}
все, и мудрить ничего не надо!

Добавлено через 4 минуты
Цитата Сообщение от Damenikx Посмотреть сообщение
У нас был метод UserFTP

C#
1
2
3
4
public string UserFTP
{
get{return textBox2.Text;}
}
все проще:
сделайте свойство UserFTP устанавливаемым и получаемым:
C#
1
2
3
4
public string UserFTP
{
get;set;
}
а уже в форме по кнопке:
C#
1
2
3
4
private void OnButtonN_Click(EventArgs e...)
{
   var settings = new FTPSettings{UserFTP =textBox2.Text};
}
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
24.10.2018, 10:15  [ТС]
Я переделал метод в новой программе, а не в той, что мы с вами делали (изучаю)

Сейчас сделаю, как вы сказали.

Добавлено через 38 минут
Не получилось, в дебагере посмотрел, после ввода информации в форму, значения UserFTP имеет null
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 11:50
Цитата Сообщение от Damenikx Посмотреть сообщение
Не получилось, в дебагере посмотрел, после ввода информации в форму, значения UserFTP имеет null
все правильно, потому что вы не там смотрите, ради эксперимента, создайте еще один текстбокс, и по нажатию кнопки сделайте следующее
C#
1
2
3
4
5
private void OnButtonN_Click(EventArgs e...)
{
   var settings = new FTPSettings{UserFTP =textBox2.Text};
  textBoxN.Text =settings.UserFTP;
}
Мне даже очень интересно, догадаетесь ли вы, что же у вас не так (я с самого начала знал что там лежат грабли, и отправил вас туда, но не из вредности, а обучения для).
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
24.10.2018, 12:08  [ТС]
Я сделал так!
Для начала, объявил поле для хранения имени фтп-сервера, пароля, имени, папки

C#
1
public string _FTPAdress
C#
1
public string _UserFTP
C#
1
public string _PwdFTP
C#
1
public string _UnderFolder
Затем, сделал так, как мы делали с вами по поводу создания папки на диске

C#
1
2
3
4
5
public string FTPAdress
{
get{return _FTPAdress;}
set{_FTPAdress = value;}
}
И так для каждого поля.
Затем вот так в самой форме по нажатию на кнопку.

C#
1
ftp.FTPAdress = textBox1.Text;
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 12:17
Цитата Сообщение от Damenikx Посмотреть сообщение
Я сделал так!
еще раз
Цитата Сообщение от V_Monomax Посмотреть сообщение
вы не там смотрите, ради эксперимента, создайте еще один текстбокс, и по нажатию кнопки сделайте следующее
C#
1
2
3
4
5
private void OnButtonN_Click(EventArgs e...)
{
 var settings = new FTPSettings{UserFTP =textBox2.Text};
 textBoxN.Text =settings.UserFTP;
}
Просто попробуйте, и задумайтесь.

Добавлено через 2 минуты
Damenikx, я не из вредности, просто хочу что-бы вы поняли, а иначе не получится задуматься.
По сути ситуация следующая:
-Дебагер говорит, что там пусто.
- а когда вы выводите в текст бокс, то все нормально.
Идея организовать эту ситуацию, заключается в том что вам надо задуматься, а что-же не так.
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
24.10.2018, 12:24  [ТС]
Я думаю, переменная которая должна забрать значение из текстбокс не делает этого. Сейчас сделаю.
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 12:32
Цитата Сообщение от Damenikx Посмотреть сообщение
Я думаю, переменная которая должна забрать значение из текстбокс не делает этого. Сейчас сделаю.
зря так думаете!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
24.10.2018, 14:12  [ТС]
C#
1
var settings = new FTPSettings{UserFTP =textBox2.Text};
Ошибка, UserFTP только для чтения.

Добавлено через 55 секунд
Так стоп, я же этим кодом просто переписываю то, что у меня было в текстбокс1 в текстбокс2

Добавлено через 9 минут
Тогда я не понимаю, как перенести это значения в другой класс и в другую переменную.

Добавлено через 57 минут
И ещё возникла проблема с CurDateFileNames(DateTime CurrentDate)

Добавлено через 11 минут
CurDateFileNames(DateTime CurrentDate) переделал немного, вроде получилось, а вот с текстбоксами никак не могу разобраться(
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 14:13
Цитата Сообщение от Damenikx Посмотреть сообщение
Так стоп, я же этим кодом просто переписываю то, что у меня было в текстбокс1 в текстбокс2
отлично, вот умеете когда хотите!
Цитата Сообщение от Damenikx Посмотреть сообщение
Тогда я не понимаю, как перенести это значения в другой класс и в другую переменную.
а что вы знаете о перегрузке метода?

Добавлено через 1 минуту
Цитата Сообщение от Damenikx Посмотреть сообщение
И ещё возникла проблема с CurDateFileNames(DateTime CurrentDate)
не правильно делаете, идите в сторону перегрузок метода!!!
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
24.10.2018, 14:16  [ТС]
Перегрузка метода это когда методы используют одно и тоже имя

Добавлено через 23 секунды
Под переделал, я имел ввиду переписал
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
24.10.2018, 14:23
Цитата Сообщение от Damenikx Посмотреть сообщение
я имел ввиду переписал
Нельзя это делать, я же вам уже привел рабочий пример:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public List<string> CurFolderDirectoryDetails(string CurFolderPath)
{                
                var res = new List<string>(); 
                var settings = new FTPSettings(); 
                var ftp = settings.RequestToDirrectoryDetails(settings.FTPAdress +CurFolderPath);// вот где нужно поменять, дабы получит ответ на ваш вопрос.
                var response = (FtpWebResponse)ftp.GetResponse();
                var responseStream = response.GetResponseStream();
                var reader = new StreamReader(responseStream);
 
                while (!reader.EndOfStream) 
                {
                    res.Add(reader.ReadLine());
                }
                responseStream.Close(); 
                response.Close(); 
                reader.Close(); 
                return res;
}
вам надо создать перегрузку этого метода, которая принимает название папки, и...
Вот что он еще должен принимать, как думаете?

Добавлено через 2 минуты
Цитата Сообщение от Damenikx Посмотреть сообщение
Ошибка, UserFTP только для чтения.
а вы сделали как я писал:
Цитата Сообщение от V_Monomax Посмотреть сообщение
C#
1
public string UserFTP { get;set; }
или вы увидели только часть текста, не читая его?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.10.2018, 14:23

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


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

Или воспользуйтесь поиском по форуму:
500
Закрытая тема Создать тему
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
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