If you are not a paid subscriber, you must have signed up for our free trial at http://www.codeoftheweek.com. Our ezine is not an unsolicited message (in other words a spam email). Keep in mind that if you signed up for our free trial you can still receive a total of four issues at no cost to you. After you receive the four issues you will be notified about continuing your subscription.
If you do not wish to continue to receive this ezine, please email us at cancel@codeoftheweek.com
The source code in this issue is designed for Visual Basic 4.0 32-bit and above. This issue requires the source code from issue number 13 for the routine GenericArrayToString which converts an array into a single delimited string.
If you have any questions about this issue, please email us at questions@codeoftheweek.com
The module included in this issue shows how to copy files using the built-in Windows SHFileOperation API call. This is the same routine that Windows Explorer uses when it copies, deletes, renames or moves files. It will allow your application to show a progress bar and a custom title (if desired). It will also allow you to copy an entire directory and its subdirectories in one function call.
This issue will only discuss how to copy files, but similiar routines can be used to delete, move or rename files.
Some additional features that are available in the ShFileOperation call can be seen in the documented constants that appear in the source code near the end of this issue. One feature that could be useful is the ability to undo the operation.
There is one public function in this module that does the entire copy function. You pass it the source and destination and it does the rest.
Public Sub CopyFiles(Window As Form, vSourceFiles As Variant, vDestFiles As Variant, _ Optional sTitle As String = "", Optional bIncludeSubDirs As Boolean = False)
Returns any error raised in the CopyFiles routine. If the user cancels the copy it will return 117.
The first sample will copy the list of source directories into e:\temp2. The second sample will copy all files in e:\temp to e:\temp3\new and will show a custom title "Backing up files"
Example #1: Dim saSource() As String ReDim saSource(1 To 3) saSource(1) = "e:\temp\msdn\*.*" saSource(2) = "e:\temp\b077\*.*" saSource(3) = "e:\temp\s011\*.*" On Error Resume Next CopyFiles Me, saSource, "e:\temp2\", , True If Err = 117 Then MsgBox "Operation Cancelled." Else If Err <> 0 Then MsgBox Err.Description End If End If Example #2: On Error Resume Next CopyFiles Me, "e:\temp\*.*", "e:\temp3\new", "Backup up files", True If Err = 117 Then MsgBox "Operation Cancelled." Else If Err <> 0 Then MsgBox Err.Description End If End If
To see the source code for this issue you must be a subscriber to Code of the Week. If you are a subscriber the source code is available at the following address: http://www.codeoftheweek.com/membersonly/bi/0057.html
That concludes this issue of COTW. We hope you find the source code useful in your development.
The below describes the ways you can supply us some feedback about COTW. We would like to see our members help mold COTW into the best Visual Basic source code resource available. But to do that we need your feedback about what you like and what you do not like about COTW.
If you are interested in advertising in COTW please email us at sponsor@codeoftheweek.com Our rates are VERY reasonable, actually they are almost FREE. We reach over five thousand Visual Basic developers each week.
If you have any suggestions for topics you would like to see covered or questions about this issue, please email them to info@codeoftheweek.com or use online feedback form at http://www.codeoftheweek.com/feedback.html.
If you have any source code you would like to submit for possible inclusion in COTW, please fill out our online submission form at http://www.codeoftheweek.com/submission.html.
Thank you for trying Code of the Week for Visual Basic.
Your free trial expires after you receive your fourth issue. If you want to continue to receive Code of the Week you can get 52 issues of COTW for only $19.95. This is a full year of Visual Basic source code and information to help with all your development. So don't wait, subscribe now! The quickest way to subscribe is to jump to our online order form at http://www.codeoftheweek.com/order.html