Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Индикация прогресса копирования / 15 сообщений из 15, страница 1 из 1
28.02.2005, 15:49
    #32936770
GreatValen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Возник такой вопрос:

Например есть директория, необходимо скопировать её, при этом требуется отобразить индикатор копирования (желательно для текущего файла и для всей директории, хотя можно и для всей директории), вот только как это сделать????

Please Help
__________________________________________________________
Если расширить двери восприятия и отбросить всё наностное, то все вещи предстанут такими, какие они есть на самом деле - Б Е С К О Н Е Ч Н Ы М И !!!
...
Рейтинг: 0 / 0
28.02.2005, 16:01
    #32936816
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
для прогресса копирования всех файлов проблем думаю нет - определяешь кол-во файлов ну и манипулируешь свойтсвами ProgressBara - Max, Value..
Ну а насчет копирования отдельного файла, то, если ты не делаешь побайтного копирования собственными руками, то будет тяжко оценить сколько ты скопировал..
...
Рейтинг: 0 / 0
28.02.2005, 16:09
    #32936838
GreatValen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Лиман Артёмдля прогресса копирования всех файлов проблем думаю нет - определяешь кол-во файлов ну и манипулируешь свойтсвами ProgressBara - Max, Value..


Меня не столько интересует количество скопированных файлов, сколько размер уже скопированной информации от общего её количества (размера)
...
Рейтинг: 0 / 0
28.02.2005, 16:15
    #32936863
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
2 GreatValen
попробуй импортировать и использовать SHFileOperation операционной системы (все диалоги и прогрессы - как при копировании фойлов в shell)
см., например,
C# does Shell, Part 2
для VB можно найти массу примеров в сети
...
Рейтинг: 0 / 0
28.02.2005, 16:24
    #32936889
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
ooops, извини :(
Меня не столько интересует количество скопированных файлов, сколько размер уже скопированной информации от общего её количества (размера)к сожалению, там только время, оставшееся до конца копирования...
...
Рейтинг: 0 / 0
28.02.2005, 16:34
    #32936923
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
хотя возможно и устроит ?
как-никак пользователи к этим окнам привыкли и для них не надо изобретать ничего нового :)
...
Рейтинг: 0 / 0
28.02.2005, 18:03
    #32937143
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Делал я прогресс бар для этого дела и привязывал к количеству файлов, не так это проблематично, а в форме показывал имя копируемого файла (возникнут трудности - не стесняйся, спрашивай, помогу...). А показать прогресс для текущего файла - это зависит от размера его родного (в принципе, скорость настолько большая, что при таком раскладе иногда и не видно всех наворотов).
...
Рейтинг: 0 / 0
28.02.2005, 18:09
    #32937161
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
авторМеня не столько интересует количество скопированных файлов, сколько размер уже скопированной информации от общего её количества (размера)
1000 (файлов) / на 100 = 10 (файлов) или 1% (от 1000) по моему так
...
Рейтинг: 0 / 0
01.03.2005, 01:18
    #32937527
GreatValen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Я думал о такой системе(но возможно уже есть что-то, причём более правильное, хотя я незнаю сработает ли то о чём я думал):

Следить за директорией при помощи SystemFileWatcher (событие Change, проверять размер директории), предварительно получив общий размер диреткории и исходя из этого расчитывать Value для ProgressBar, однако у меня возникает вопрос как узнать размер директории? (FileInfo.Length ???)
__________________________________________________________
Если расширить двери восприятия и отбросить всё наностное, то все вещи предстанут такими, какие они есть на самом деле - Б Е С К О Н Е Ч Н Ы М И !!!
...
Рейтинг: 0 / 0
01.03.2005, 01:20
    #32937528
GreatValen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Да и чуть не забыл - охото использовать только .NET, без unmanaged code.
__________________________________________________________
Если расширить двери восприятия и отбросить всё наностное, то все вещи предстанут такими, какие они есть на самом деле - Б Е С К О Н Е Ч Н Ы М И !!!
...
Рейтинг: 0 / 0
01.03.2005, 01:26
    #32937531
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
GreatValenоднако у меня возникает вопрос как узнать размер директории? (FileInfo.Length ???)считать самому (причем рекурсивно) по всем файлам и вложенным директориям.
...
Рейтинг: 0 / 0
01.03.2005, 11:49
    #32938220
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
я тут немного поигрался так как был децл свободноо времени и кое чего примитивное наваял...работает немного медленнее чем в тотале (копирование) зато все на managed и своими руками - если решение подойдет буду тока рад)
...
Рейтинг: 0 / 0
01.03.2005, 12:41
    #32938404
GreatValen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Лиман Артёмя тут немного поигрался так как был децл свободноо времени и кое чего примитивное наваял...работает немного медленнее чем в тотале (копирование) зато все на managed и своими руками - если решение подойдет буду тока рад)

Спасибо Артём как только появится время я посмотрю, наверное после пятницы, а то у меня полный запар с госами.
...
Рейтинг: 0 / 0
01.03.2005, 15:23
    #32939009
Лиман Артём
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
немного поиксперемнтриовав добился наибольшей производительности изменив так (от тотала конечно все равно отстает):
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Public Class FileCopy
 ...
 Const DEF_BUFFER_SIZE% =  128000 
 ...

  Private Sub CopyFile(ByVal fileName$)
   ....
   'откуда качаем
        Dim sourceFile As New FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, Me._BufferSize)
        'куда качаем
        Dim outFile As New FileStream(GetFullFileAndPath(fileName), FileMode.Create, FileAccess.ReadWrite, FileShare.Read, Me._BufferSize)
   ....
 
    End Sub
end class

это если кому интересно
...
Рейтинг: 0 / 0
01.03.2005, 20:19
    #32939824
vladgrig
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Индикация прогресса копирования
Мне понравилось, и кстати не так уж он отстаёт от тотала (по крайней мере - визуально).
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Индикация прогресса копирования / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]