Solved

VB6 copy and move

Posted on 2009-07-06
7
312 Views
Last Modified: 2012-05-07
I have some VB6 code that copies files over the network.
I want to use this to copy SQL backup files which are in this format: - Database_backup_200906301200.bak
Does anyone know of a simple solution that allows me to copy all the items in a folder to another and then move the copied files so they are not re-copied next time the program is run?
Option Explicit
Dim NetFile As String
Dim HDFile As String
 
 
Sub main(HDFile As String, NetFile As String)
 
    On Error GoTo Errtrap
    FileCopy NetFile, HDFile
    
    Exit Sub
Errtrap:
    Select Case Err
        Case 91 ' not set
        Resume Next
        Case 53 ' file not found
        Resume Next
 
    Case Else
        MsgBox Err & "  " & Err.Description
 
        End
        Exit Sub
    End Select
End Sub
 
Private Sub Form_Load()
 
    NetFile = "\\files\users\andy\temp\Test.bak"
    HDFile = "c:\temp\test.bak"
    
    main HDFile, NetFile
    End
    
End Sub

Open in new window

0
Comment
Question by:HKFuey
  • 5
7 Comments
 
LVL 10

Expert Comment

by:peetm
ID: 24784142
0
 

Author Comment

by:HKFuey
ID: 24784238
I have already looked at that here: -
http://articles.techrepublic.com.com/5100-10878_11-1050078.html (posted by Angelll)
If I put this in my code 'Dim fso As New FileSystemObject' I get an error 'User Type not defined'
0
 

Author Comment

by:HKFuey
ID: 24784316
OK got a bit further, I added the reference Microsoft Scripting Runtime
0
Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

 

Author Comment

by:HKFuey
ID: 24784372
I can get the FilesystemObject to work, does anyone know the syntax to copy/move all the files in a folder?
0
 

Author Comment

by:HKFuey
ID: 24784490
OK I've done it, code below

Option Explicit
Dim MovFile
Dim NetFile As String
Dim HDFile As String
 
 
 
Sub main(HDFile As String, NetFile As String)
Dim fso As New FileSystemObject
 
    On Error GoTo Errtrap
 
    fso.CopyFile NetFile, HDFile
    fso.MoveFile NetFile, MovFile
    
    Exit Sub
Errtrap:
    Select Case Err
        Case 91 ' not set
        Resume Next
        Case 53 ' file not found
        Resume Next
 
    Case Else
        MsgBox Err & "  " & Err.Description
 
        End
        Exit Sub
    End Select
End Sub
 
Private Sub Form_Load()
 
    NetFile = "\\files\users\andy\temp\*.*"
    HDFile = "c:\temp2\"
    MovFile = "\\files\users\andy\temp\Mov\"
    
    main HDFile, NetFile
    End
    
End Sub

Open in new window

0
 
LVL 4

Accepted Solution

by:
De_Wim99 earned 500 total points
ID: 24785013
not tested, but this should do the trick:
Option Explicit
 
Sub main(HDFile As String, NetFile As String, MovFile As String)
Dim fs As Scripting.FileSystemObject
Dim scrFolder As Scripting.Folder
Dim scrFile As Scripting.File
Set fs = New Scripting.FileSystemObject
Set scrFolder = fs.GetFolder(HDFile)
 
    On Error GoTo Errtrap
 
For Each scrFile In scrFolder.Files
     fs.CopyFile NetFile, HDFile & scrFile.Name
     fs.MoveFile NetFile, MovFile & scrFile.Name
Next
 
Set fs = Nothing
Set scrFolder = Nothing
Set scrFile = Nothing
    
    Exit Sub
Errtrap:
    Select Case Err
        Case 91 ' not set
        Resume Next
        Case 53 ' file not found
        Resume Next
 
    Case Else
        MsgBox Err & "  " & Err.Description
        Set fs = Nothing
        Set scrFolder = Nothing
        Set scrFile = Nothing
        End
        Exit Sub
    End Select
End Sub
 
Private Sub Form_Load()
    Dim MovFile As String
    Dim NetFile As String
    Dim HDFile As String
    
    NetFile = "\\files\users\andy\temp\"
    HDFile = "c:\temp2\"
    MovFile = "\\files\users\andy\temp\Mov\"
    
    main HDFile, NetFile, MovFile
    End
    
End Sub

Open in new window

0
 

Author Closing Comment

by:HKFuey
ID: 31600099
Thanks for the help!
0

Featured Post

ScreenConnect 6.0 Free Trial

Check out the updates in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI that improves session organization and overall user experience. See the enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When designing a form there are several BorderStyles to choose from, all of which can be classified as either 'Fixed' or 'Sizable' and I'd guess that 'Fixed Single' or one of the other fixed types is the most popular choice. I assume it's the most p…
I was working on a PowerPoint add-in the other day and a client asked me "can you implement a feature which processes a chart when it's pasted into a slide from another deck?". It got me wondering how to hook into built-in ribbon events in Office.
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…
This lesson covers basic error handling code in Microsoft Excel using VBA. This is the first lesson in a 3-part series that uses code to loop through an Excel spreadsheet in VBA and then fix errors, taking advantage of error handling code. This l…

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question