如何在复制VB.NET时停止/取消FileStream

时间:2016-03-16 02:24:56

标签: vb.net filestream

复制多个文件时,停止FileStream整个操作的正确方法是什么。当我调用Stop Download()函数时,它会停止,但是当我再次开始复制时,它并不像它那样开始。我该怎么办?

代码:

Private dStop As Boolean = False

Dim streamRead As FileStream
Dim streamWrite As FileStream

Public Function StopDownload()
    dStop = True
    streamWrite.Flush()
    streamWrite.Close()
    streamRead.Close()
End Function

Public Sub Copier(ByVal URL As String, ByVal Location As String) As Boolean

    streamRead = New FileStream(URL, System.IO.FileMode.Open)
    streamWrite = New FileStream(Location, System.IO.FileMode.Create)
    Dim lngLen As Long = streamRead.Length - 1
    Dim byteBuffer(1048576) As Byte
    Dim intBytesRead As Integer

     While streamRead.Position < lngLen And dStop = False 'This is where i stop the process of copying
         intBytesRead = (streamRead.Read(byteBuffer, 0, 1048576))
         streamWrite.Write(byteBuffer, 0, intBytesRead)
         Pbar1.value = CInt(streamRead.Position / lngLen * 100)
         Application.DoEvents()    'do it
     End While 

     streamWrite.Flush()
     streamWrite.Close()
     streamRead.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

我必须在我Copier Public Sub。

的开头加上这个
dstop = False

开始新的复制过程。