|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
||||||||||||||||
Прогресс выполнения копирования через File::Copy или быстрое копирование23.10.2018, 04:27. Показов 3306. Ответов 36
Доброго времени суток, коллеги.
Я конечно не могу похвастаться большим опытом в программировании на С++, тем более что приходиться работать в среде с /clr Задача простая, скопировать файлы и попутно выводить прогресс. Среди условий копирование файлов с компа на "флешку" (на самом деле устройство определяемое как флешка) и обратно. Если при копирование НА комп с носителя все прошло благополучно, и файлы копируются, и прогресс показывается и скорость удовлетворительная, то при обратной операции, (Внимание!!!) те же файлы, на то же устройство, в общем полностью обратный процесс, занимает очень и очень длительное время. В чем причина не понятно, подозреваю, что эта проблема вызвана самим устройством (флешкой), то есть подозреваю что аппаратно чтение быстрее скорости априори и при использовании моей функции для копирования, происходит многократное усугубление ситуации. Также, не будь дураком, порыскал в гугле на тему как ускорить копирование, так и не разобравшись, догадался использовать:
То есть функция складывает размер файлов и выдает результат, но выдает не совсем так как ожидалось. Я уже эту функцию перевернул с ног на голову и как только не извращался, даже дошел до того что брал под контроль папки и считывал размер всех ее файлов, но она упрямо выдает сразу конечный результат, когда четко известно что копирование еще не завершено. Может мне кто-то помочь в данной ситуации. Самый простой вариант это довести до ума функцию сообщающую прогресс копирования при использовании
Для справки, проект не коммерческий, даже немного благотворительный )) Привожу для примера один из вариантов функции отслеживающей прогресс, как бы отслеживающей ((
Добавлено через 14 минут Небольшое дополнение: Есть мысли, что функция копирования создает "пустой" файл конечного объема, отсюда возможно что моя функция прогресса получает такой результат, но на флешке при прерванной операции фалйы имеют реальный размер, я конечно могу ошибаться и могу еще много чего не знать. Опыта ведь мало (((
0
|
||||||||||||||||
| 23.10.2018, 04:27 | |
|
Ответы с готовыми решениями:
36
Файл базы SQLITE не копируется через IO.File.Copy Ожидания выполнения до конца или прогресс бар |
|
|
||||||||
| 23.10.2018, 17:17 | ||||||||
0
|
||||||||
|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
|||||||
| 23.10.2018, 17:22 [ТС] | |||||||
|
И еще хотелось бы выяснить детали, причины и следствия, чтобы не просто копировать код а еще и понимать что при этом делается. Иначе плохой из меня программист получится.
Добавлено через 4 минуты
0
|
|||||||
|
|
||||
| 23.10.2018, 17:43 | ||||
|
Берём, например, справку по методу FileStream.Read и видим примеры на языках: C#, VB.Net и... всё. А те, кто непонятно зачем выбрал другие языки, сами себе злобные буратины ![]() По C# документации и примеров - МОРЕ, а по C++/CLI - кот наплакал. Добавлено через 1 минуту Добавлено через 10 минут Ну и повторюсь, вам, вполне может быть, кажется, что запись идёт быстро. Потому что кеширование так и выглядит.
0
|
||||
|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
||
| 23.10.2018, 18:01 [ТС] | ||
|
0
|
||
| 23.10.2018, 18:03 | |
|
Не по теме: Ооо, сколько в мире творится абсурда, и не перечислить...
0
|
|
|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
||||||
| 25.10.2018, 19:52 [ТС] | ||||||
|
И я лопух и никто не подсказал
. Все я правильно делал надо было всего лишь добавить в код
0
|
||||||
|
|
|
| 25.10.2018, 20:01 | |
|
Во-первых, надо юзать using () {}
Во-вторых, Flush перед Close не обязателен. А с using ни то, ни другое не требуется. В-третьих, потестите флешку в Crystal Disk Mark.
1
|
|
|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
|
| 25.10.2018, 20:04 [ТС] | |
|
мой принцип работает, пусть работает.))
Про конструкцию using я что-то не могу припомнить чтобы в моих учебниках об этом говорилось.
0
|
|
|
|
|||
| 25.10.2018, 20:06 | |||
|
using Statement (C# Reference) Используйте её по возможности всегда, с теми классами, что реализуют IDisposable.
0
|
|||
|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
||
| 25.10.2018, 20:23 [ТС] | ||
|
Вы все же к шарпу привыкли, но я учту все ваши замечания и буду совершенствоваться.
0
|
||
| 25.10.2018, 20:24 | |
|
Не по теме: Ой блин, точно :D
0
|
|
| 25.10.2018, 20:55 | ||
|
Не по теме:
PsychoTech, если собрались работать на .net, то лучше слезать потихоньку с этого языка в пользу c# или vb.net (который попроще будет)
0
|
||
| 25.10.2018, 20:57 | |
|
0
|
|
|
1087 / 917 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
|
|
| 25.10.2018, 20:58 | |
|
https://docs.microsoft.com/ru-... hprogressw
Так для справки, есть API для копирования/переноса данных файла. При помощи обработчика можно вести учет копированных данных, ошибок записи и не которых других прибамбасов
0
|
|
|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
||
| 31.10.2018, 17:42 [ТС] | ||
|
Не по теме:
Добавлено через 4 минуты
0
|
||
|
|
|||||
| 31.10.2018, 17:54 | |||||
|
Но если у вас крупное предприятие, то Community да, не подойдёт. Но, точно также не подойдёт и Express, т.к. её лицензия запрещает применение на коммерческих предприятиях для коммерческих разработок (и не смотрите, что она типа бесплатная). , полных альтернатив пока нет.Просто на заре появления .Net Framework компания Microsoft разработала свой язык как альтернативу Java от Oracle, это был C#. А чтобы заманить разработчиков на VC++ и VB сюда, были сделаны и эти языки. Но получилось так, что C# успешно развивается, получает новые фичи, имеет море документации и примеров; VB .Net оставлен для новичков, ничего не усложняют и не развивают; C++/CLI - непонятно, очень нишевый, без него можно обойитсь, как следствие - он не популярен.
0
|
|||||
| 31.10.2018, 19:23 [ТС] | ||||
|
Не по теме:
0
|
||||
| 31.10.2018, 19:23 | |
|
Не удаётся отображать прогресс выполнения SQL запросов через Recordset Fail to copy file to HDD.File:E\images\WOP000280OXXTC0111.SWM Построчное копирование папок, с сохранением структуры или копирования из файла
Команда копирования Copy Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки.
Добавлены следующие реквизиты типа Булево:
- Буквы;
- Цифры;
- Символы.
Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
|
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей.
Самым главным критерием для. . .
|