|
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204
|
||||||
Скачивание по FTP целой папки04.08.2025, 15:42. Показов 1284. Ответов 12
Метки нет (Все метки)
Всем привет!
попытаюсь подробно изложить проблему. В программе реализовано копирование с/на удаленный сервер(УС) файлов по FTP методом перетаскивания. все работает нормально. при копировании с ПК на УС курсор меняется, а при отпускании в (DragDrop) начинается процесс копирования, все ок. при обратном методе(с УС на ПК) (DragDrop) не возникает, а процесс копирования происходит в (ItemDrag) при том, что файлы копируются во временную папку. а на шаге (DoDragDrop(obj, DragDropEffects.Copy) уже из временной переносится в паку назначения.с одним небольшим файлом вроде как все норм, но если он "большой", или например мне надо всю папку скопировать то система как бы "подвисает". т.е. идет автоматическое копирование во временную папку. соответственно иконка "копирование" не видна, пользователь в тупике. после того как фоновое копирование завершено, процесс переноса в папку назначения проходит нормально. выдернул часть кода для понимания, он старый, зато все наглядно.
кто-то сталкивался с этим?
0
|
||||||
| 04.08.2025, 15:42 | |
|
Ответы с готовыми решениями:
12
Скачивание целой папки
Скачивание папки с FTP - сервера по актуальной дате (2) |
|
|
||
| 04.08.2025, 16:09 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204
|
|
| 04.08.2025, 17:33 [ТС] | |
|
спасибо, но я вот не пойму, а как это поможет?
"подвисает" - потому что идет теневое скачивание, без моего ведома. если бы оно начиналось после отпускания ЛКМ, то проблемы бы и не было. может есть примерчик?
0
|
|
|
|
||
| 05.08.2025, 02:00 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204
|
|
| 05.08.2025, 12:43 [ТС] | |
|
Да нет же, вы неправильно поняли.
зависает уже до DoDragDrop, т.е. идет теневое скачивание во временную папку. а уже на DoDragDrop из временной в целевую, тут все быстро.
0
|
|
|
|
||
| 05.08.2025, 12:52 | ||
|
0
|
||
|
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204
|
|
| 05.08.2025, 13:49 [ТС] | |
|
как асинхронный метод может запретить копирование с УС в процессе перетаскивания?
вы предлагаете правильно, но это не решит проблему теневого копирования. может курсор и будет правильно отображаться, но мне желательно сделать копирование именно при отпускании ЛКМ. как это организовано при копировании с ПК на УС.
0
|
|
|
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204
|
|
| 05.08.2025, 15:57 [ТС] | |
|
еще раз,
1. выбираю файл(папку) в listview ("Технические данные ...") 2. нажимаю ЛКМ и "тащу" на рабочий стол. 3. как только начинаю двигать, срабатывает ItemDrag и начинается теневое копирование во временную папку. во время этого, визуальной информации о том пользователь что-то перетаскивает нет. 4. как только заканчивается теневое копирование, сразу визуальная информация становится доступной. 5. при отпускании ЛКМ, например, над "рабочим столом" срабатывает DoDragDrop. т.е. файл(папка) из временной переносится на "рабочий стол" под "визуальной информацией" я понимаю это смена иконки с default на copy и обратно проблема именно в п3
0
|
|
|
|
|
| 05.08.2025, 16:15 | |
|
sonmax,
1. зачем копировать во "временную " папку? 2. само копирование начинается при событии ItemDrag - это прописано у тебя в коде. Мышку дернул - началось копирование. Если это не то поведение, которое нужно - убирай его от сюда и меняй логику на нужную.. Добавлено через 12 минут Логика должна быть примерно такая: - ухватились на элемент, начали "тащить". В этот момент запоминается путь того, что "ухватили". - тащим до элемента, на котором разрешено событие Drop. - только при "бросании" элемента на этом контроле должно начаться копирование. Потому как: - мы можем случайно схватить не ту папку; - в процессе перетаскивания можем передумать копировать; поэтому НЕ бросание в целевой контрол не должно приводить ни к какому копированию..
0
|
|
|
|
||||||||||||
| 05.08.2025, 16:23 | ||||||||||||
|
И после отпускания ЛКМ пишите код самого копирования, обёрнутый в Task
Вот пример асинхронного копирования файла с прогрессом и т.д. Это для WPF, но мысль, думаю, будет понятна.
0
|
||||||||||||
|
0 / 0 / 0
Регистрация: 05.07.2011
Сообщений: 204
|
||||||
| 05.08.2025, 17:46 [ТС] | ||||||
|
наверное надо извиниться.
задавая вопрос я ориентировался на устаревший код. и в итоге проблема не столько в самом копировании, сколько в событии окончания перетаскивания. вот более актуальный код, дальше только видео снимать.
это неправильно, и хоть как то обойти проблему добавил File.Exists. но только так я могу получить папку назначения когда отпускаю ЛКМ. DoDragDrop - позволяет получить этот путь и скопировать туда. самый правильный вариант отлавливать mouse_up и только после этого копировать, но mlvTKPFile_MouseUp не срабатывает, т.к. ЛКМ я отпускаю на "рабочем столе" по этой же причине не работает mlvTKPFile_DragDrop и по какому тут событию отрабатывать. непонятно
0
|
||||||
| 06.08.2025, 00:17 | ||
|
Не по теме:
Делать это в срочном порядке конечно не стоит, но если планируете существенный рефакторинг приложения -- явно напрашивается навести порядок в таком коде.
0
|
||
| 06.08.2025, 00:17 | |
|
Помогаю со студенческими работами здесь
13
Подключение к FTP и скачивание HTML файл Создать используя Task аснхронное скачивание с ftp Скачивание файла с ftp сервера
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|