使用此功能vb.net,复制过程非常慢

时间:2018-07-31 19:25:21

标签: vb.net

我使用此功能将某些文件从“源”文件夹复制到“目标”文件夹,但是比平时需要更多的时间。

 Sub SyncFiles(Lbl_Percentage As Label, Lbl_FileName As Label, PrgrsBar As ProgressBar)
    Try

        Dim Sql As String = "SELECT GroupID FROM Tbl_Current"
        Dim GetGroupID = MsAcc_RetriveTemp(Sql, 0)

        Dim Sql1 As String = "Select * FROM Tbl_SyncPath where ID=" & GetGroupID
        Dim Src As String = MsAcc_RetriveTemp(Sql1, 1)
        Dim Des As String = MsAcc_RetriveTemp(Sql1, 2)


        If Not IO.Directory.Exists(Des) Then IO.Directory.CreateDirectory(Des)
        Dim fls() As String = IO.Directory.GetFiles(Des)
        PrgrsBar.Value = 0
        PrgrsBar.Maximum = fls.Count

        For Each fn As String In fls

            Dim filename As String = IO.Path.GetFileName(fn)

            My.Computer.FileSystem.CopyDirectory(Des, Src, True)
            PrgrsBar.Value += 1 'add 1 to the ProgressBar`s value 

            Dim Percntge As Integer = (PrgrsBar.Value / fls.Count) * 100
            Lbl_Percentage.Text = Percntge & " %"
            Lbl_FileName.Text = "جاري تحديث ملف:  " & filename
            Application.DoEvents()
            Lbl_FileName.Text = "اكتمل عملية التحديث."
        Next


    Catch ex As Exception
    End Try

End Sub

1 个答案:

答案 0 :(得分:0)

您为每个文件复制文件夹中的所有文件。

    For Each fn As String In fls

        Dim filename As String = IO.Path.GetFileName(fn)

        My.Computer.FileSystem.CopyDirectory(Des, Src, True) ' <--- No file specified
        PrgrsBar.Value += 1 'add 1 to the ProgressBar`s value 

        Dim Percntge As Integer = (PrgrsBar.Value / fls.Count) * 100
        Lbl_Percentage.Text = Percntge & " %"
        Lbl_FileName.Text = "جاري تحديث ملف:  " & filename
        Application.DoEvents()
        Lbl_FileName.Text = "اكتمل عملية التحديث."
    Next

将此内容置于循环之外

    My.Computer.FileSystem.CopyDirectory(Des, Src, True)

    For Each fn As String In fls
        ' ...
    Next

而且,似乎des和src混在一起了。