0 / 0 / 0
Регистрация: 10.12.2006
Сообщений: 106

Индикатор прогресса копирования файлов

02.02.2009, 12:56. Показов 2478. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить проблемку. Хотел создать индикатор прогресса копирования файла, но натолкнулся на непонимание проги.

Например копирую файл c:11.bbb в файл c:22211.bbb, используя
FileCopy 'c:11.bbb','c:22211.bbb'

Создал на форме 'прогрес', вставил таймер, в котором через определенный промежуток времени определяю размер получаемого файла (c:22211.bbb) следующим образом FileLen('c:22211.bbb'), чтобы потом отобразить результат в прогрессе. Но результат просто отвратительный - результат отображается только после копирования файла полностью, а движения прогресса нет(пробовал и большой файл копировать более 100мб).
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Option Explicit
Private Sub Form_Load()
    pbOneFiles.Min = 0
    pbOneFiles.Value = 0
    tmProgress.Enabled = False
    tmProgress.Interval = 50
    FileCopy 'c:11.bbb','c:22211.bbb'
    DoEvents
End Sub
Private Sub tmProgress_Timer()
    pbOneFiles.Value = FileLen('c:22211.bbb')
    DoEvents
End Sub
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.02.2009, 12:56
Ответы с готовыми решениями:

Отображение прогресса копирования файлов
Как навесить прогрессбар на функцию копирования файлов, что бы было видно сколько скопировалось. Заранее благодарен Олег

Помогите сделать индикатор копирования файлов.
Всем привет! Помогите сделать индикатор копирования файлов. Может ссылка у кого есть какая или готовый примерчик. Пробую с помощью...

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

7
0 / 0 / 1
Регистрация: 21.07.2008
Сообщений: 120
03.02.2009, 09:36
Попробуй копировать файл побитово, т.е.:
Open 'c:MyFile.txt' For Binary As #1
Open 'e:MyFile.txt' For Binary As #2
затем через Get #1 и Put #2 переносишь данные из одного файла в другой попутно изменяя ProgresBar.Value или по экспереминтируй с DoEvents.

Удачи.
0
Neld
03.02.2009, 10:06
может вот это подойдет

Private Declare Function SHFileOperation Lib 'shell32.dll' _
Alias 'SHFileOperationA' (lpFileOp As SHFILEOPSTRUCT) As Long
Comanche
03.02.2009, 23:06
2SWS:
В процессе копирования размер конечного файла остаётся равным нулю. Поэтому ничего и не получается - FileLen() возвращает ноль. Попробуй запусти в одном окне Проводника копирование какого-нибуль файла, а в другом окне - посмотри на конечный файл: Проводник будет показывать в своём статус-баре 'Размер = нулю', пока копирование не кончится.

2Neld:
Спасибо за наводку на эту замечательную функцию. Я и не подозревал о её существовании. Всё ленюсь купить книжку по Win32 API...
От себя только добавлю пару ссылок на примеры её использования:
http://www.relib.com/articles/article.asp?id=53
http://www.vbmania.ru/vbmag/3/files.shtml
http://www.vedu.ru/programming/Abr_soft/vb007.htm
Comanche
03.02.2009, 23:16
А вот ещё одна отличная ссылочка на эту же тему:

http://www.vb.kiev.ua/ref/w32api/showdoc.php?f=copyfile

Вообще, меня этот сайт всегда радует своими примерами.
0 / 0 / 0
Регистрация: 10.12.2006
Сообщений: 106
04.02.2009, 05:43  [ТС]
Хорошо, но тогда-же по какому принципу работает FAR, который пишет сразу, попробуйте копировать большой файл, а в другом Far-е просматривать размер записываемого файла.... Есть-же все-таки какойто выход.?
0
Comanche
05.02.2009, 12:53
Наверняка FAR работает через ДОСовские прерывания. На ассемблере несложно написАть прогу, которая будет мониторить все (или выбранные) файловые операции на 'побайтном' уровне.

Несложно, разумеется, для того, кто знает ассемблер )
0 / 0 / 0
Регистрация: 20.03.2008
Сообщений: 12
09.02.2009, 12:36
Какие вызовы функций DOS ???
Какая ДОС под WinNT ???
Скорее я поверю в существование OS/2 под WinNT, чем в ДОС под той же платформой...

FAR копирует файлы просто читая по байтам в одном месте и записывая в другом, если ему не сказать, чтобы он использовал системные функции.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2009, 12:36
Помогаю со студенческими работами здесь

Процедура копирования двух файлов
Мне нужно скопировать два файла, открытые как БИНАРНЫЕ. Перенос по букве слишком тормозит. Использовать системные копиры не могу так как...

Индикатор прогресса
Подскажите пожалуйста, как сделать в delphi так, что по мере выполнения определённой процедуры, заполнялся индикатор прогресса? Например...

Индикатор прогресса
Возможно ли на PHP сделать индикатор прогресса загрузки файла на сервер не используя - JS ? ...

индикатор прогресса
Измените пример таким образом, чтобы вместо количества процентов выводилась линия с некоторых символов, постепенно заполняется. Не...

Индикатор прогресса в консоли
#include <iostream> #include <Windows.h> int main() { std::cout << "Loading Please Wait"; while (true) { ...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru