Ошибка чтения файла, созданного WriteAllBytes

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

Ошибка чтения файла, созданного WriteAllBytes

Сообщение immark » 11.08.2019 (Вс) 16:48

Приветствую!
Помогите найти ошибку в коде, который копирует файл.
При попытке чтения копии файла получаю сообщение, что не удается открыть файл
Благодарю за внимание.
Код: Выделить всё
Dim inputFile = IO.File.Open(pathRead, IO.FileMode.Open)
        Dim bufferSize As Long = 50000
        Dim ostByte As Long = FileLen(pathRead)
        ' Adjust array length for VB array declaration.
        Dim bytes = New Byte(bufferSize - 1) {}
        Do
            If ostByte < bufferSize Then
                bytes = New Byte(ostByte - 1) {}
                My.Computer.FileSystem.WriteAllBytes(pathWrite, bytes, True)
                FileClose()
                MsgBox("DONE")
                Exit Do
            Else
                bytes = New Byte(bufferSize - 1) {}
                My.Computer.FileSystem.WriteAllBytes(pathWrite, bytes, True)
                ostByte = ostByte - bufferSize
            End If
        Loop

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Ошибка чтения файла, созданного WriteAllBytes

Сообщение Mikle » 11.08.2019 (Вс) 19:02

А где чтение файла? Ты во второй файл нули записываешь.
И поправь первый пост, используй тег "code", читать же тяжело.

Так работает (я уменьшил bufferSize, чтобы не копировать большие файлы):
Код: Выделить всё
Public Class Form1
  Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim pathRead As String = "D:\Docs\Visual Studio 2008\Projects\IO\in.bin"
    Dim pathWrite As String = "D:\Docs\Visual Studio 2008\Projects\IO\out.bin"
    Dim inputFile = IO.File.Open(pathRead, IO.FileMode.Open)
    Dim outputFile = IO.File.Open(pathWrite, IO.FileMode.Append)
    Dim bufferSize As Long = 50
    Dim fileSize As Long = FileLen(pathRead)
    Dim Pos As Long = 0
    Dim Bytes(bufferSize - 1) As Byte

    While Pos < fileSize - bufferSize
      inputFile.Read(Bytes, 0, bufferSize)
      outputFile.Write(Bytes, 0, bufferSize)
      Pos = Pos + bufferSize
    End While
    inputFile.Read(Bytes, 0, fileSize - Pos)
    outputFile.Write(Bytes, 0, fileSize - Pos)
    inputFile.Close()
    outputFile.Close()
  End Sub
End Class

immark
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 11.03.2009 (Ср) 16:28

Re: Ошибка чтения файла, созданного WriteAllBytes

Сообщение immark » 12.08.2019 (Пн) 12:08

Большое спасибо!
Теперь ясно, в чем ошибка.
Извините за некорректную вставку кода - не знал, как это сделать.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11

    TopList