2013-01-09 100 views
1

所以我想在Visual Basic中做些事情,我开始学习,但仍然不够。大多数情况下,我使用互联网上的代码。现在我想从第一个文件夹复制几个文件到第二个文件夹,并覆盖现有的文件,我想看看进度条上的进度(所有文件一起大约2GB)复制带有进度条的文件

解决:我找到一些程序的源代码,零件,使这项工作

+0

在这里这段代码粘贴是u需要解释的问题,并回答 http://stackoverflow.com/questions/1299721/progress-bar-and-file-copying - 问题 – Alfarem

+0

你好。这个问题是多余的,缺乏具体的问题。请看问题发布指南。 –

回答

6

这是我最喜欢做...使用SHFileOperationAPI

这个API会自动显示如下图所示的截图进步的方式。

这里是一个例子。模块

Public Declare Function SHFileOperation Lib "shell32.dll" _ 
Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long 

Public Const FO_COPY = &H2 

Public Type SHFILEOPSTRUCT 
    hWnd As Long 
    wFunc As Long 
    pFrom As String 
    pTo As String 
    fFlags As Integer 
    fAnyOperationsAborted As Long 
    hNameMappings As Long 
    lpszProgressTitle As Long 
End Type 

Public Sub VBCopyFolder(ByRef strSource As String, ByRef strTarget As String) 
    Dim op As SHFILEOPSTRUCT 

    With op 
     .wFunc = FO_COPY 
     .pTo = strTarget 
     .pFrom = strSource 
     .fFlags = FOF_SIMPLEPROGRESS 
    End With 

    '~~> Perform operation 
    SHFileOperation op 
End Sub 

,然后复制文件或文件夹这样

Private Sub Sample() 
    '~~> Copy Files 
    Call VBCopyFolder("C:\Sample.Avi", "C:\NewSample.Avi") 

    '~~> Copy Folders 
    Call VBCopyFolder("C:\Temp1", "C:\Temp2") 
End Sub 

截图

enter image description here

+0

tnx为答案,但我真正想要看到的进度条上的应用程序,我做了 – user1959879

+0

这样的事情会有这样的帮助吗? http://stackoverflow.com/questions/10782394/pop-up-the-excel-statusbar/10787496#10787496 –