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

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

04.10.2018, 09:39. Показов 31683. Ответов 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
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
13.12.2018, 15:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Damenikx Посмотреть сообщение
Я поменял так, как вы сказали, но теперь ошибка входа.
проверяй в тестах, правильность введенных имени пользователя и пароля, в строке с инициализацией настроек!
Цитата Сообщение от Damenikx Посмотреть сообщение
Мы ведь опять добавили (FTPAdress + directory)
Добавлено через 15 минут
Если убрать directory, то всё равно ошибка URI-адреса.
все правильно, потому что вы не удосужились подумать. Просто если мы не входим в папку, то ошибка, мы не входим в папку, если входим в папку, то ошибка, не правильные имя и пароль!
Не верите мне, проверьте:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public bool DirectoryExists(string directory)
{
      try
        {
             var ftp = (FtpWebRequest)FtpWebRequest.Create(FTPAdress + directory);
             ftp.Credentials = new NetworkCredential(UserFTP, PwdFTP); ///логин, пароль
             Console.WriteLine("UserFTP {0} |PwdFTP {1}", UserFTP, PwdFTP);
             ftp.KeepAlive = false;///не держим соединение после выполнения запроса
             ftp.UseBinary = true;///тип данных для передачи
             ftp.Method = WebRequestMethods.Ftp.GetFileSize;
 
               using (FtpWebResponse response = ftp.GetResponse() as FtpWebResponse)
                {          return true;  }
        }catch(Exception ex)
         {
            Console.WriteLine("{0} |{1} |ex", "FTPAdress/" + directory, false);  
             Console.WriteLine("ex");
             Console.WriteLine();
            Console.WriteLine(ex.Message);          
          return false;
          }
}
и увидите, что имя и пароль у метода не правильные, значит вы их туда не правильно передали!
Значит их туда надо правильно передать (ну сколько можно об этом?)
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
13.12.2018, 15:53  [ТС]
Я Вам верю конечно же. Просто говорю, что получается, я сейчас ещё раз всё проверю.

Добавлено через 4 минуты
Я вот хотел спросить, если не правильно работает тест, который говорит, что не удаётся войти, то, как работает программа? Я наверное что-то не понимаю

Добавлено через 2 минуты
И передал я их не правильно в наш метод или же в тест?

Добавлено через 3 минуты
Просто я смотрю через дебагер, они передаются в метод.
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
13.12.2018, 15:59  [ТС]
Вот так это выглядит. Может в тесты я не правильно что-то перенёс, но я их не менял.
Миниатюры
Скачивание папки с FTP - сервера по актуальной дате  
0
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
13.12.2018, 16:24  [ТС]
Всё понятно, я просто тупой забыл в тест привязать логин и пароль. Сделал , как вы говорили ранее.

UserFTP = "Test"
PwdFTP ="12345678"

После этого тест говорит, что файла там нема. Ошибка 550 Файл недоступен.

Добавлено через 3 минуты
Буду дальше думать.

Добавлено через 5 минут
Добился результата того, что теперь TestFolderExist проходит, а TestFolderNotExist - не проходит, однако ошибка 550 всё ещё меня преследует. Попробую пообщаться с ней на ты
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
13.12.2018, 21:28
Цитата Сообщение от Damenikx Посмотреть сообщение
а TestFolderNotExist - не проходит, однако ошибка 550 всё ещё меня преследует. Попробую пообщаться с ней на ты
Стоп, в этом тесте и должна возникать ошибка!, а результат возвращаться false, прогоните тест, и то что он выводит выложите!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.12.2018, 08:36  [ТС]
Test Name: TestFolderExist
Test FullName: UnitTestProject1.Test_FTPSettings_Direct oryCheck.TestFolderExist
Test Source: C:\Users\adn\Documents\Visual Studio 2012\Projects\FTPFilesTaker\UnitTestProj ect1\UnitTest1.cs : line 24
Test Outcome: Passed
Test Duration: 0:00:40,1324431

Result StandardOutput:
FTPAdress/Москва |True |ex
ex

Удаленный сервер возвратил ошибку: (550) Файл недоступен (например, не найден или к нему нет доступа).
FTPAdress/Москва |True |ex
ex

Удаленный сервер возвратил ошибку: (550) Файл недоступен (например, не найден или к нему нет доступа).
Тест прошёл успешно



Test Name: TestFolderNotExist
Test FullName: UnitTestProject1.Test_FTPSettings_Direct oryCheck.TestFolderNotExist
Test Source: C:\Users\adn\Documents\Visual Studio 2012\Projects\FTPFilesTaker\UnitTestProj ect1\UnitTest1.cs : line 32
Test Outcome: Failed
Test Duration: 0:00:20,4564251

Result StackTrace: в UnitTestProject1.Test_FTPSettings_Direct oryCheck.TestFolderNotExist() в C:\Users\adn\Documents\Visual Studio 2012\Projects\FTPFilesTaker\UnitTestProj ect1\UnitTest1.cs:строка 36
Result Message: Ошибка в Assert.IsFalse. Не правильное значение проверки, ожидалось: ложь, пришло: истина
Result StandardOutput:
FTPAdress/Кейптаун |True |ex
ex

Удаленный сервер возвратил ошибку: (550) Файл недоступен (например, не найден или к нему нет доступа).
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 08:48
вообще странно:
Цитата Сообщение от Damenikx Посмотреть сообщение
FTPAdress/Москва |True |ex
ex
Удаленный сервер возвратил ошибку: (550) Файл недоступен (например, не найден или к нему нет доступа).
Тест прошёл успешно
потому как должен возвращать
Цитата Сообщение от V_Monomax Посмотреть сообщение
Console.WriteLine("{0} |{1} |ex", "FTPAdress/" + directory, false); *
* * * * * * *Console.WriteLine("ex");
* * * * * * *Console.WriteLine();
* * * * * * Console.WriteLine(ex.Message); * * * * *
* * * * * return false;
что то не так у вас с тестируемым методом, давайте на него посмотрим!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.12.2018, 09:20  [ТС]
Это наверное потому что я вчера "эксперементировал" может что-то наворотил. Я даже знаю что.

Добавлено через 4 минуты
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public bool DirectoryExists(string directory)
{
      try
        {
             var ftp = (FtpWebRequest)FtpWebRequest.Create(FTPAdress + directory);
             ftp.Credentials = new NetworkCredential(UserFTP, PwdFTP); ///логин, пароль
             Console.WriteLine("UserFTP {0} |PwdFTP {1}", UserFTP, PwdFTP);
             ftp.KeepAlive = false;///не держим соединение после выполнения запроса
             ftp.UseBinary = true;///тип данных для передачи
             ftp.Method = WebRequestMethods.Ftp.GetFileSize;
 
               using (FtpWebResponse response = ftp.GetResponse() as FtpWebResponse)
                {          return false;  }//здесь было true
        }catch(Exception ex)
         {
            Console.WriteLine("{0} |{1} |ex", "FTPAdress/" + directory, true);  //здесь было false
             Console.WriteLine("ex");
             Console.WriteLine();
            Console.WriteLine(ex.Message);          
          return true; //здесь было false
          }
}
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 10:53
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public bool DirectoryExists(string directory)
{
      try
        {
             var ftp = (FtpWebRequest)FtpWebRequest.Create(FTPAdress + directory);
             ftp.Credentials = new NetworkCredential(UserFTP, PwdFTP); ///логин, пароль
             Console.WriteLine("UserFTP {0} |PwdFTP {1}", UserFTP, PwdFTP);
             ftp.KeepAlive = false;///не держим соединение после выполнения запроса
             ftp.UseBinary = true;///тип данных для передачи
             ftp.Method = WebRequestMethods.Ftp.GetFileSize;//Вот здесь надо менять!!!!
 
               using (FtpWebResponse response = ftp.GetResponse() as FtpWebResponse)
                {          return true;  }//здесь и должно быть true
        }catch(Exception ex)
         {
            Console.WriteLine("{0} |{1} |ex", "FTPAdress/" + directory, false);  //здесь и должно быть false
             Console.WriteLine("ex");
             Console.WriteLine();
            Console.WriteLine(ex.Message);          
          return false; //здесь и должно быть false
          }
Вот спрашивается, почему смотрим в книгу сообщение, и видим фигу что угодно кроме того что надо?
Why you not read? when i write for you?
Цитата Сообщение от V_Monomax Посмотреть сообщение
теперь задача сводится к тому, чтобы, найти такой
WebRequestMethods.Ftp
при котором для существующей папки, получалось подсоединится, а при не существующей вылетала ошибка
(пробуйте различные варианты, пока оба теста не пойдут).
Вот здесь я говорю поэксперементируйте с WebRequestMethods.Ftp!
Попробуйте все методы, если не получится, то тогда будем думать еще.
May be you have problem on russian lunguge? may be i will write in English?
Ou peut-être vaut-il mieux écrire en français?
Quelle langue préférez-vous pour une meilleure compréhension?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.12.2018, 12:00  [ТС]
А-а-а-а.
I understand u!
Comprendo muchachos'


Пробую... отпишусь

Добавлено через 17 минут
Итак, я поэксперементировал. Решил поставить PrintWorkingDirectory.
Первый тест прошёл, а второй нет, потому что папки которую мы ищем нет.

Добавлено через 1 минуту
И естественно он ругается на строку Assert.IsFalse(fe, "Неправильно значение проверки...");
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 13:50
выложите что он вам пишет по второму тесту!
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.12.2018, 13:59  [ТС]
Test Name: TestFolderNotExist
Test FullName: UnitTestProject1.Test_FTPSettings_Direct oryCheck.TestFolderNotExist
Test Source: C:\Users\adn\Documents\Visual Studio 2012\Projects\FTPFilesTaker\UnitTestProj ect1\UnitTest1.cs : line 32
Test Outcome: Failed
Test Duration: 0:00:00,6805505

Result StackTrace: в UnitTestProject1.Test_FTPSettings_Direct oryCheck.TestFolderNotExist() в C:\Users\adn\Documents\Visual Studio 2012\Projects\FTPFilesTaker\UnitTestProj ect1\UnitTest1.cs:строка 36
Result Message: Ошибка в Assert.IsFalse. Не правильное значение проверки, ожидалось: ложь, пришло: истина
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 14:14
ну, вам же четко описывается:
Цитата Сообщение от Damenikx Посмотреть сообщение
Ошибка в Assert.IsFalse. Не правильное значение проверки, ожидалось: ложь, пришло: истина
Т.е. метод возвращает истина, когда должен вернуть ложь. А значит и метод тестирования не прошел!

Добавлено через 29 секунд
пробуйте все возможные варианты!

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

Добавлено через 19 минут
Что-то не так...
Я решил изменить тест и поменял TestFolderExist строку
string FolderName = "НеМосква"

ЗАпустил тест, а он прошёл, хотя не должен был, ведь такой папки у нас на сервере нету...

Добавлено через 2 минуты
Поэтому наш метод и не ловит исключение, а значит и тест не проходит...
0
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 15:07
Цитата Сообщение от Damenikx Посмотреть сообщение
Хорошо, попробую что-нибудь поэксперементировать в методе проверки.
Сынақ әдістерімен ештеңе істеудің қажеті жоқ !!!!
Олар ең аз кодпен жасалады және тестіленген әдіс бойынша дұрыс әдісті талап етеді!
Сынақ әдістерінде бәрін қайтару керек! Және тәжірибе қажет
Цитата Сообщение от V_Monomax Посмотреть сообщение
ftp.Method = WebRequestMethods.Ftp.GetFileSize;//Мұнда өзгерту керек !!!!
түсінесіз бе?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.12.2018, 15:09  [ТС]
Понимаю. (спасибо гуглу) Хорошо, я сейчас пропишу всё поочереди)))
1
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 15:12
Цитата Сообщение от Damenikx Посмотреть сообщение
Понимаю. (спасибо гуглу) Хорошо, я сейчас пропишу всё поочереди)))
значит вам надо объяснять по казахски?
1
 Аватар для Damenikx
955 / 341 / 114
Регистрация: 04.08.2018
Сообщений: 2,533
14.12.2018, 15:27  [ТС]
НЕТ!!! Просто я читаю описание всех тех методов и там всё для файлов папку либо удалить либо переименовать. Добавил Rename Тест поменялись))))

Добавлено через 4 минуты
ДААА ЧЯ СДЕЛАЛ щшвро ДЛОУРФЩМЛДШВУ И

Добавлено через 52 секунды

Не по теме:

*Побежал по коридору с поднятыми руками и соплями на плече*



Добавлено через 7 минут
В общем так...

Я такой сижу и думаю, какой параметр указать, думал размер...Но размер подойдёт только к файлу а не папке, опять думал...Потом в голове так: "а что общего между папкой и файлом, хм" и тут меня осенило! ВРЕМЯ!!! Хо-хо! И я сразу воткнул туда метод

WebRequestMethods.Ftp.GetDateTimestamp.

Ииииии вауля! Работают оба теста
1
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
14.12.2018, 15:51
Цитата Сообщение от Damenikx Посмотреть сообщение
Ииииии вауля! Работают оба теста
С чем я вас поздравляю!
Вот так и учимся программировать через тестирование, давайте подведем промежуточные итоги!
1. Для чего нужны тесты?
2. Сколько тестов нужно для одного тестируемого метода?
3. Когда нужно писать тесты?
Сможете ответить на вопросы самостоятельно?

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

Добавлено через 4 минуты
1. Для чего нужны тесты?

Если подумать для меня тесты это упрощение работы с кодом. Зачем менять весь код, когда можно добавить тест и с помощью теста просматривать где ошибка или же для того, чтобы узнать правильно ли работает наша программа.

2. Сколько тестов нужно для одного тестируемого метода?

Я думаю не меньше двух.

3. Когда нужно писать тесты?

Всегда, когда проект сложнее чем вычисления суммы чисел в виде: х=а+b.

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

Не по теме:

Смотрия на Ваш аватар на форму могу предположить, что вы смотрели мультфильм: "Жизнь жуков" так, вот...ФЛИК РУЛИТ!

1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.12.2018, 16:01

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


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

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