|
12 / 4 / 1
Регистрация: 11.09.2018
Сообщений: 67
|
||||||||||||||||
Прогресс выполнения копирования через File::Copy или быстрое копирование23.10.2018, 04:27. Показов 3117. Ответов 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
|
|
|
1086 / 916 / 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 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот.
Ларри Уингет
|
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|