Page 1 of 1

Тестирование нового Download Master 5.5.9.1156

Posted: 04 Feb 2009, 18:43 Wed
by i4u1
Slavko wrote: Работает только на дисках с NTFS системой и под Windows XP и старше.
Жду отзывов
Кодеры, вы хоть форум та читаете? давно уже решение давал для проблемы - SetEndOfFile. Что за ограничения? Откуда взялись? Что специального даёт эта ФС в вопросе "резервирования" места на диске? Ну вывалется на фате при > 2GiB и что? Так это фс проблемы а не API.
SetEndOfFile
...
Minimum supported client:
Windows 2000 Professional

Re: Тестирование нового Download Master 5.5.9.1156

Posted: 04 Feb 2009, 19:19 Wed
by Slavko
i4u1 wrote:
Slavko wrote: Работает только на дисках с NTFS системой и под Windows XP и старше.
Жду отзывов
Кодеры, вы хоть форум та читаете? давно уже решение давал для проблемы - SetEndOfFile. Что за ограничения? Откуда взялись? Что специального даёт эта ФС в вопросе "резервирования" места на диске? Ну вывалется на фате при > 2GiB и что? Так это фс проблемы а не API.
SetEndOfFile
...
Minimum supported client:
Windows 2000 Professional
SetEndOfFile проблему с задержкой при выделении места под файл не решает.

Re: Тестирование нового Download Master 5.5.9.1156

Posted: 04 Feb 2009, 19:27 Wed
by Slavko
Можно использовать этот файл для проверки:

http://mirror.yandex.ru/mandriva/offici ... d-i586.iso

Закачивать его полностью ненужно, достаточно стартовать закачку и покачать секунд 30. Посмотреть будет ли подвисание для выделения места под файл (незабудьте включить опцию Резервировать место... в настройках). Особенно интересует работа под Vista.

Для тех кто не понимает о каком подвисании речь, можете выключить опцию "Резервировать место...", и стартовать закачку вышеуказанного файла (покачать в течении хотя-бы минуты двух).

Re: Тестирование нового Download Master 5.5.9.1156

Posted: 04 Feb 2009, 20:38 Wed
by i4u1
Slavko wrote: SetEndOfFile проблему с задержкой при выделении места под файл не решает.
Может на деньги поспорим? Может вы не умеете её просто использовать?
http://rapidshare.com/files/193887965/D ... e.exe.html
Создаёт файл в той же директории. Смотреть размер. Засекать секундомером время.

Re: Тестирование нового Download Master 5.5.9.1156

Posted: 05 Feb 2009, 10:38 Thu
by Slavko
i4u1 wrote:
Slavko wrote: SetEndOfFile проблему с задержкой при выделении места под файл не решает.
Может на деньги поспорим? Может вы не умеете её просто использовать?
http://rapidshare.com/files/193887965/D ... e.exe.html
Создаёт файл в той же директории. Смотреть размер. Засекать секундомером время.
Можно вас еще попросить в конец созданного файла, после SetEndOfFile(hFile); записать еще пару килобайт информации.

Re: Тестирование нового Download Master 5.5.9.1156

Posted: 05 Feb 2009, 13:07 Thu
by i4u1
Slavko wrote: Можно вас еще попросить в конец созданного файла, после SetEndOfFile(hFile); записать еще пару килобайт информации.
ПРостите, не понял. Когда ставим конец файла, то файловый указатель соответственно стоит на конце файла.
программа забивает всё свободное место файлом, содержимое которого неопределено, но определён конечный размер = свободному месту на текущем диске.
Я видел структуру ваших файлов для закачки (т.е. место для файла+его координаты + др.нужная информация). Стратегия таже двигаем файловый указатель куда нужно ставим метку конца. чтобы начать работу сначала с файлом либо ставим указатель опять вначало либо заново переоткрываем файл.

Re: Тестирование нового Download Master 5.5.9.1156

Posted: 05 Feb 2009, 13:33 Thu
by Slavko
i4u1 wrote:
Slavko wrote: Можно вас еще попросить в конец созданного файла, после SetEndOfFile(hFile); записать еще пару килобайт информации.
ПРостите, не понял. Когда ставим конец файла, то файловый указатель соответственно стоит на конце файла.
программа забивает всё свободное место файлом, содержимое которого неопределено, но определён конечный размер = свободному месту на текущем диске.
Я видел структуру ваших файлов для закачки (т.е. место для файла+его координаты + др.нужная информация). Стратегия таже двигаем файловый указатель куда нужно ставим метку конца. чтобы начать работу сначала с файлом либо ставим указатель опять вначало либо заново переоткрываем файл.
Я имел ввиду передвинуть указатель назад на пару килобайт от конца и записать данные. Наверное непонятно выразился.

Можно даже проще, попробуйте после строки c вашим SetEndOfFile(hFile) записать байт данных в конец файла (в последний байт, туда где указатель стоит) через: WriteFile(...)

Posted: 05 Feb 2009, 15:37 Thu
by i4u1
Речь шла о резервировании. я дал для вашего случая решение. даже с примером.
Ещё одно или несколько дать? Для вашего случая подойдут вот эти:
1. FILE_FLAG_OVERLAPPED
2. threading
Везде нужна синхронизация +осторожность в использовании.
Да действительно, система тратит какое-то время на инициализацию если сразу идёт запись в конец, но это не повод всё это делать в одном потоке где и ГУЙ обрабатывается и всё остальное. решение см.выше.