Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11

Немного красоты

30.07.2018, 21:37. Показов 1172. Ответов 12

Студворк — интернет-сервис помощи студентам
В 1С клиенте есть небольшая проблема - он до сих пор не научился докачивать с FTP.
Поэтому написал небольшую программу, которая как раз и занимается этим (1С складывает в папку, а уже программа из этой папки забрасывает файлы на FTP).
При написании использовал довольно известную библиотеку BytesRoad.NetSuit. Только вот один из фрагментов кода мне не понравился. Вообщем вот код:
C#
1
2
3
4
5
6
7
8
                    foreach (FtpItem item in ftpClient.GetDirectoryList(TimeoutFTP)) //начинаем циклом проверять каждый элемент с FTP
                    {
                        if (item.Name == SFile) // если имя элемента совпало с именем файла, который нужно скачать, то
                        {
                            itemsFromFtp2 = item.Size; // узнаем его размер и
                            break; // выходим, пытаясь хоть как-то не затягивать этот кусок кода
                        }
                    }

Добавлено через 7 минут
Вопрос: возможно ли спросить у FTP, есть или нет у него такой-то файл или это из рода фантастики? все равно всю работу придется делать на стороне программы.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.07.2018, 21:37
Ответы с готовыми решениями:

Салон красоты. За который наименьшее время k сотрудников салона красоты смогут обслужить всех девушек?
В салон красоты пришло n девушек. Каждая из них должна посетить парикмахера и косметолога. У каждого она проводит по m часов. За который...

В наушник попало немного воды и он стал немного тише играть
В наушник попало немного воды и он стал немного тише играть. Это практически не заметно, но всё же раздражает. Так это пройдет со временем...

Салон красоты
В салон краси прийшло n дівчат. Кожна з них повинна відвідати перукаря і косметолога. У кожного вона проводить по m годин. За який...

12
25 / 26 / 5
Регистрация: 27.10.2016
Сообщений: 245
31.07.2018, 02:01
Есть расширения для работы с FTP, в некоторых видел такую функцию
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
31.07.2018, 09:46  [ТС]
Подскажите хотя бы одно!

Добавлено через 10 минут
Jake Morgan !
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
03.08.2018, 20:58
Можно.
https://en.wikipedia.org/wiki/List_of_FTP_commands
LIST - Returns information of a file or directory if specified, else information of the current working directory is returned.
SIZE - Return the size of a file.
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
03.08.2018, 21:11  [ТС]
nicolas2008 не хотел я углубляться в TCP/IP стек, но походу придется
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
03.08.2018, 21:25
Цитата Сообщение от Vitali_H Посмотреть сообщение
не хотел я углубляться в TCP/IP стек, но походу придется
А и не надо)
Есть же FtpWebRequest для этого.
Вот такая борода:

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
25
        public static long? GetFtpFileSize(string ftpUrl, string ftpFilePath)
        {
            FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create($"{ftpUrl}/{ftpFilePath}");
            ftpRequest.Method = WebRequestMethods.Ftp.GetFileSize; // "SIZE"
 
            FtpWebResponse response;
            try
            {
                response = (FtpWebResponse) ftpRequest.GetResponse();
            }
            catch (WebException ex)
            {
                if (ex.Response is FtpWebResponse ftpWebResponse && ftpWebResponse.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable)
                {
                    return null;
                }
                else
                {
                    throw;
                }
            }
 
            long fileSize = response.ContentLength; // да, в ContentLength содержится размер файла
            return fileSize;
        }
C#
1
2
3
4
5
6
7
8
9
10
            long? size = GetFtpFileSize($"ftp://speedtest.tele2.net/", "1000GB.zip");
 
            if (size == null)
            {
                Console.WriteLine("No such file.");
            }
            else
            {
                Console.WriteLine($"The size of the file is {size} bytes.");
            }
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
03.08.2018, 21:31  [ТС]
nicolas2008 не увидел, где происходит аутентификация на ФТП-сервере?
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
03.08.2018, 21:33
Цитата Сообщение от Vitali_H Посмотреть сообщение
не увидел, где происходит аутентификация на ФТП-сервере?
C#
1
ftpRequest.Credentials = new NetworkCredential("bla bla", "bla bla bla");
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
03.08.2018, 21:53  [ТС]
nicolas2008 программа превратится в винегрет. Надо было сразу использовать FtpWebRequest.
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
03.08.2018, 22:12
Vitali_H, Посмотрите может и в том FtpClient-е есть возможность выполнения произвольной комманды
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
08.08.2018, 19:16  [ТС]
nicolas2008 да что-то не нахожу, может из-за празднования дня рождения, глаз замылился
Вложения
Тип файла: zip BytesRoad.NetSuit_Ref.chm.zip (289.1 Кб, 5 просмотров)
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
08.08.2018, 20:11
Цитата Сообщение от Vitali_H Посмотреть сообщение
глаз замылился
Наверное
Там есть метод SendCommand(int timeout, string command)
А вообще, посмотрел я код этой либы, и мой вердикт - не рекомендую использовать.
0
0 / 0 / 0
Регистрация: 30.07.2018
Сообщений: 11
11.08.2018, 18:13  [ТС]
nicolas2008, а есть пример работоспособной программы на FtpWebRequest ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
11.08.2018, 18:13
Помогаю со студенческими работами здесь

Салон красоты
Здравствуйте!Нужно срочно написать сайт на тему "Салон красоты Милена"...очень срочно.завтра нужно сдать...

Салон красоты
Всем весёлой пятницы!!! Я тут возомнил себя типа стилистом и возжаждал сотворить БД по учету оказания услуг, типа Патикмахерской или даже...

Конкурс красоты
Есть такая задача: Производится отбор девушек на участие в конкурсе красоты. Количество желающих неограничено. Нужно отобрать определенное...

Цена красоты
Доброе время,может кто-нибудь подскажет название фильма или ссылку на него.Фильм смотрела 2 года назад,названия не помню.Суть заключается в...

Теория человеческой красоты
Как ни странно, ни генетика, ни теория эволюции, ни антропология ни другие смежные с эволюционной теорией дисциплины никогда не касаются...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru