分享

如何使用文件复制对话框...

 a_cheng 2009-10-22

Visual Basic 提供了过时的FileCopy语句.问题是使用该函数时并不显示文件复制对话框,也就是说,当拷贝一个大文件时,用户看不到Windows的标准

文件复制对话框,无法从进度条上判断当前复制的进度.那么,如何做到这一点呢?请看下面:

Public Type SHFILEOPSTRUCT

hWnd As Long

wFunc As Long

pFrom As String

pTo As String

fFlags As Integer

fAnyOperationsAborted As Boolean

hNameMappings As Long

lpszProgressTitle As String

End Type

Public Declare Function SHFileOperation Lib "shell32.dll" Alias

_

"SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long

Public Const FO_COPY = &H2

Public Const FOF_ALLOWUNDO = &H40

Public Sub ShellCopyFile(Source As String, Dest As String)

Dim result As Long

Dim fileop As SHFILEOPSTRUCT

With fileop

.hwnd = 0

.wFunc = FO_COPY

'The files to copy separated by Nulls and terminated by 2 nulls

.pFrom = Source & vbNullChar & vbNullChar

'or to copy all files use this line

'.pFrom = "C:\*.*" & vbNullChar & vbNullChar

'The directory or filename(s) to copy into terminated in 2 nulls

.pTo = Dest & vbNullChar & vbNullChar

.fFlags = FOF_ALLOWUNDO

End With

result = SHFileOperation(fileop)

If result <> 0 Then 'Operation failed

'Msgbox the error that occurred in the API.

MsgBox Err.LastDllError, vbCritical Or vbOKOnly

Else

If fileop.fAnyOperationsAborted <> 0 Then

MsgBox "Operation Failed", vbCritical Or vbOKOnly

End If

End If

End Sub

只需调用ShellCopyFile FileA, FileACopy

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多