【发布时间】:2016-02-02 08:54:42
【问题描述】:
我正在制作一个将子文件夹复制到另一个文件夹的程序,但我的进度条无法正常工作,例如当我复制单个子文件夹时,它的百分比仅为 20% 并停在那里,但如果它是 2 个子文件夹50%就停了,加载进度就像捷径一样不流畅。
你们能帮帮我吗?
更新
这是我的代码:
Dim foldersToCopy As New ArrayList()
Sub CopyFolders()
Dim foldsrc As DirectoryInfo = New DirectoryInfo(src)
For Each folders In foldsrc.GetDirectories
If Not System.IO.Directory.Exists(dest & "\" & folders.Name) Then
foldersToCopy.Add(folders.Name)
End If
Next
Dim src As String = Form2.TextBox1.Text
Dim dest As String = Form2.TextBox2.Text
Dim fcount = Directory.GetDirectories(src).Length
Dim ftransfer As Integer = 0
For i = 0 To foldersToCopy.Count - 1
My.Computer.FileSystem.CopyDirectory(src & "\" & foldersToCopy(i), dest & "\" & foldersToCopy(i), True)
ftransfer += 1
Pbar1.value += ftransfer * 50 / fcount
Pbar1.Update()
Next
End Sub
顺便说一句,我可以将WebClient 的e.ProgressPercentage 或DownloadProgressChanged 用于此代码以获得平滑的进度条吗? =)
【问题讨论】:
-
这看起来不对。尝试使用以下代码更新进度条:
Pbar1.value = (ftransfer * 100) / fcount -
你可能应该将
fcount设置为:Dim fcount As Integer = foldersToCopy.Count,因为你想要所有子目录对吗?不只是当前文件夹中的那些? -
还是一样,没有任何改变。 =(
标签: .net vb.net loops directory progress-bar