Автор вопроса: AV | Web-сайт:www.av.folder-pro.net
Помогите, пожалуйста, нужна помощь. Те у кого есть сеть наверное знают, что если качать какой-нибудь файл больших размеров (например фильм), то при малейшем сбое стандартное Виндосовское копирование дохнет, и приходится потом начинать все сначала... Как же можно организовать продолжение копирования с того места где произошел обрыв на VB?
Вообще можно копировать не полностью файл за раз, а по-частям, а потом, если, скажем, файл куда нужно копировать уже есть, то узнать его размер, в файле источнике установить "рамку, позицию считывания" (как только в литературе это не обзывают), в общем воспользоваться "Seek" и установить нужную позицию для считывания, и опять же по частям скопировать "остаток" файла
Public Sub FileCopy(SourceFile, DestFile) Dim Bt As Byte
Open SourceFile For Binary Access Read As #1 Open estFile For Binary Access Write As #2
For i = 1 To FileLen(SourceFile) LabelResume: If VBA.Dir(SourceFile) <> "" Then Get #1, i, Bt Put #2, i, Bt Else Select Case MsgBox("Ошибка чтения файла. Продолжить?", vbCritical + vbYesNo) Case VBA.VbMsgBoxResult.vbYes GoTo LabelResume Case VBA.VbMsgBoxResult.vbNo Exit Sub End Select End If VBA.DoEvents Next i
Close #2 Close #1 End Sub
Но так работает очень медленно, может кто-нибудь подскажет как сделать порции байтов побольше или ускорить этот процесс?