主题:[代码]复制/移动文件,并显示相应的进度条对话框

Option Explicit

Private 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 String
End Type

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

Private Const FOF_ALLOWUNDO = &H40
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_SIMPLEPROGRESS = &H100

Private Const FO_COPY = &H2
Private Const FO_MOVE = &H1

'--------------------------------------------------------------------------------
' 过程: ShellFileCopy
' 描述: 复制文件,并显示“正在复制...”进度条对话框
' 返回: [Boolean] True为复制成功,False为复制失败
'
' 参数:
'     Src (String)                      要复制的源文件
'     Dest (String)                     要复制到的位置
'     hWnd (Long)                       父窗体的句柄(可选)
'     NoShowText (Boolean = False)      是否不显示复制的文件名
'     NoConfirm (Boolean = False)       是否不显示确认对话框
'
'--------------------------------------------------------------------------------
Public Function ShellFileCopy(Src As String, Dest As String, _
       Optional hWnd As Long, _
       Optional NoShowText As Boolean = False, _
       Optional NoConfirm As Boolean = False) As Boolean

    Dim SFO As SHFILEOPSTRUCT
    Dim lRet As Long
    Dim lflags As Long

    lflags = FOF_ALLOWUNDO

    If NoShowText Then lflags = lflags Or FOF_SIMPLEPROGRESS

    If NoConfirm Then lflags = lflags Or FOF_NOCONFIRMATION

    With SFO

        .wFunc = FO_COPY
        .pFrom = Src
        .pTo = Dest
        .fFlags = lflags
        
    End With

    lRet = SHFileOperation(SFO)
    ShellFileCopy = (lRet = 0)

End Function

'--------------------------------------------------------------------------------
' 过程: ShellFileMove
' 描述: 移动文件,并显示“正在移动...”进度条对话框
' 返回: [Boolean] True为移动成功,False为移动失败
'
' 参数:
'     Src (String)                      要移动的源文件
'     Dest (String)                     要移动到的位置
'     hWnd (Long)                       父窗体的句柄(可选)
'     NoShowText (Boolean = False)      是否不显示移动的文件名
'     NoConfirm (Boolean = False)       是否不显示确认对话框
'
'--------------------------------------------------------------------------------
Public Function ShellFileMove(Src As String, Dest As String, _
       Optional hWnd As Long, _
       Optional NoShowText As Boolean = False, _
       Optional NoConfirm As Boolean = False) As Boolean

    Dim SFO As SHFILEOPSTRUCT
    Dim lRet As Long
    Dim lflags As Long

    lflags = FOF_ALLOWUNDO

    If NoShowText Then lflags = lflags Or FOF_SIMPLEPROGRESS

    If NoConfirm Then lflags = lflags Or FOF_NOCONFIRMATION

    With SFO

        .wFunc = FO_MOVE
        .pFrom = Src
        .pTo = Dest
        .fFlags = lflags
        
    End With

    lRet = SHFileOperation(SFO)
    ShellFileMove = (lRet = 0)

End Function

 

 

转载自月光软件站 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值