File Copy API with Progress Dialog
Posted on June 24, 2011
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | 'File/Folders Handling - File Copy API with Progress Dialog 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 FO_COPY = &H2 Public Function ShellFileCopy(src As String, dest As String, _ Optional NoConfirm As Boolean = False) As Boolean 'PARAMETERS: src: Source File (FullPath) ' dest: Destination File (FullPath) ' NoConfirm (Optional): If set to true, no confirmation box is displayed when ' overwriting existing files, and no copy progress dialog box is displayed 'Returns: True if Successful; False otherwise; Dim WinType_SFO As SHFILEOPSTRUCT Dim lRet As Long Dim lflags As Long lflags = FOF_ALLOWUNDO If NoConfirm Then lflags = lflags & FOF_NOCONFIRMATION With WinType_SFO .wFunc = FO_COPY .pFrom = src .pTo = dest .fFlags = lflags End With lRet = SHFileOperation(WinType_SFO) ShellFileCopy = (lRet = 0) End Function 'How can I call this function: 'Dim bSuccess as boolean 'bSuccess = ShellFileCopy ("C:\MyFile.txt", "D:\MyFile.txt") |