Solved

Automatic regular ftp transfers

Posted on 1998-11-17
1
138 Views
Last Modified: 2013-12-25
How can I automatically send a file by ftp to a remote server (Where I have to supply my ID + password each time)every five minutes?
0
Comment
Question by:johnbowen
1 Comment
 
LVL 13

Accepted Solution

by:
Mirkwood earned 50 total points
ID: 1488327
Here is some sample code that I found on the web.
It uses the Microsoft INet Control

Private Const ftpDIR As Integer = 0

                    Private Const ftpPUT As Integer = 1

                    Private Const ftpGET As Integer = 2

                    Private Const ftpDEL As Integer = 3

                    Private iLastFTP As Integer



                    Private Sub cmdConnect_Click()

                        On Error GoTo ConnectError

                        Inet1.URL = txtURL

                        Inet1.UserName = txtUserName

                        Inet1.Password = txtPassword

                        Inet1.Protocol = icFTP

                        iLastFTP = ftpDIR



                        Inet1.Execute Inet1.URL, "DIR"

                    End Sub



                    Private Sub Inet1_StateChanged(ByVal _

                        State As Integer)

                        Select Case State

                            Case icNone

                             sbFTP.Panels("status").Text = ""

                            Case icResolvingHost

                             sbFTP.Panels("status").Text

                               = "Resolving Host"

                            Case icHostResolved

                             sbFTP.Panels("status").Text _

                               = "Host Resolved"

                            Case icConnecting

                             sbFTP.Panels("status").Text _

                               = "Connecting..."

                            Case icConnected

                             sbFTP.Panels("status").Text _

                               = "Connected!"

                            Case icRequesting

                             sbFTP.Panels("status").Text _

                               = "Requesting..."

                            Case icRequestSent

                             sbFTP.Panels("status").Text _

                               = "Request Sent"

                            Case icReceivingResponse

                             sbFTP.Panels("status").Text _

                               = "Receiving Response..."

                            Case icResponseReceived

                             sbFTP.Panels("status").Text _

                               = "Response Received!"

                            Case icDisconnecting

                             sbFTP.Panels("status").Text _

                               = "Disconnecting..."



                            Case icDisconnected

                             sbFTP.Panels("status").Text _

                               = "Disconnected"

                            Case icError

                             sbFTP.Panels("status").Text _

                               = "Error! " & Trim(CStr( _

                               Inet1.ResponseCode)) & _

                               ": " & Inet1.ResponseInfo

                            Case icResponseCompleted

                             sbFTP.Panels("status").Text _

                               = "Response Completed!"

                                ReactToResponse iLastFTP

                        End Select

                    End Sub



                    Public Function _

                        ReactToResponse(ByVal _

                        iLastCommand As Integer) As Long

                        Select Case iLastCommand

                            Case ftpDIR

                                ShowRemoteFileList

                            Case ftpPUT

                                MsgBox "File Sent from " & CurDir()

                            Case ftpGET

                                MsgBox "File Received "& "in " & CurDir()

                            Case ftpDEL

                        End Select

                    End Function



                    Public Function ShowRemoteFileList() As Long

                        Dim sFileList As String

                        Dim sTemp As String

                        Dim p As Integer

                        sTemp = Inet1.GetChunk(1024)

                        Do While Len(sTemp) > 0

                            DoEvents

                            sFileList = sFileList & sTemp

                            sTemp = Inet1.GetChunk(1024)

                        Loop

                        lstRemoteFiles.Clear

                        Do While sFileList > ""

                            DoEvents

                            p = InStr(sFileList, vbCrLf)

                            If p > 0 Then

                                lstRemoteFiles.AddItem

                                    Left(sFileList, p - 1)

                                If Len(sFileList) > (p + 2) Then

                                    sFileList = Mid(sFileList, p + 2)

                                Else

                                    sFileList = ""

                                End If

                            Else

                                lstRemoteFiles.AddItem sFileList

                                sFileList = ""

                            End If

                        Loop

                    End Function



                    Public Function GetFiles(sFileList As String) As Long

                        Dim sFile As String

                        Dim sTemp As String

                        Dim p As Integer

                        iLastFTP = ftpGET

                        sTemp = sFileList

                        Do While sTemp > ""

                            DoEvents

                            p = InStr(sTemp, "|")

                            If p Then

                                sFile = Left(sTemp, p - 1)

                                sTemp = Mid(sTemp, p + 1)

                            Else

                                sFile = sTemp

                                sTemp = ""

                            End If

                            Inet1.Execute Inet1.URL, "GET " & sFile & _

                                " " & sFile

                        'wait until this execution is done

                        `before going to next file

                            Do

                                DoEvents

                            Loop Until Not _

                                Inet1.StillExecuting

                        Loop

                        iLastFTP = ftpDIR

                        Inet1.Execute Inet1.URL, "DIR"

                    End Function



                    Public Function PutFiles(sFileList As String) As Long

                        Dim sFile As String

                        Dim sTemp As String

                        Dim p As Integer

                        iLastFTP = ftpPUT

                        sTemp = sFileList

                        Do While sTemp > ""

                            DoEvents

                            p = InStr(sTemp, "|")

                            If p Then

                                sFile = Left(sTemp, p - 1)

                                sTemp = Mid(sTemp, p + 1)

                            Else

                                sFile = sTemp

                                sTemp = ""

                            End If

                            Inet1.Execute Inet1.URL, "PUT" & sFile & _

                                " " & sFile

                        'wait until this execution is done

                        `before going to next file

                            Do

                                DoEvents

                            Loop Until Not Inet1.StillExecuting

                        Loop

                        iLastFTP = ftpDIR

                        Inet1.Execute Inet1.URL, "DIR"

                    End Function



                    Private Sub dirLocal_Change()

                        filLocal.Path = dirLocal.Path

                    End Sub



                    Private Sub drvLocal_Change()

                        dirLocal.Path = drvLocal.Drive

                    End Sub



                    Private Sub filLocal_DragDrop(Source _

                            As Control, X As Single, Y As Single)

                        'receiving files from FTP site.

                        Dim I As Integer

                        Dim sFileList As String

                        If TypeOf Source Is ListBox Then

                            For i = 0 _

                                To Source.ListCount - 1

                                If Source.Selected(i) Then

                                    sFileList = _

                                        sFileList & _

                                        Source.List(i) & "|"

                                End If

                            Next

                        End If

                        If Len(sFileList) > 0 Then

                            'strip off the last pipe

                            sFileList = Left(sFileList, _

                                Len(sFileList) - 1)

                            GetFiles sFileList

                        End If

                    End Sub



                    Private Sub _

                        filLocal_MouseDown(Button As _

                        Integer, Shift As Integer, X As _

                        Single, Y As Single)

                        filLocal.Drag vbBeginDrag

                    End Sub



                    Private Sub filLocal_MouseUp(Button _

                        As Integer, Shift As Integer, _

                        X As Single, Y As Single)

                        filLocal.Drag vbEndDrag

                    End Sub



                    Private Sub _

                        lstRemoteFiles_DragDrop(Source _

                        As Control, X As Single, Y As Single)

                        Dim I As Integer

                        Dim sFileList As String

                        If TypeOf Source Is FileListBox Then

                            For i = 0 To Source.ListCount - 1

                                If Source.Selected(i) Then

                                    sFileList = sFileList & _

                                      Source.List(i) & "|"

                                End If

                            Next

                        End If

                        If Len(sFileList) > 0 Then

                            'strip off the last pipe

                            sFileList = Left(sFileList, _

                                Len(sFileList) - 1)

                            PutFiles sFileList

                        End If

                    End Sub



                    Private Sub _

                        lstRemoteFiles_KeyDown(KeyCode _

                        As Integer, Shift As Integer)

                        If KeyCode = vbKeyDelete Then

                            Inet1.Execute Inet1.URL, "DEL " & _

                                lstRemoteFiles.List( _

                                lstRemoteFiles.ListIndex)

                            Do

                                DoEvents

                            Loop While Inet1.StillExecuting

                        End If

                        iLastFTP = ftpDIR

                        Inet1.Execute Inet1.URL, "DIR"

                    End Sub



                    Private Sub _

                        lstRemoteFiles_MouseDown(Button _

                        As Integer, Shift As Integer, )

                        X As Single, Y As Single)

                        lstRemoteFiles.Drag vbBeginDrag

                    End Sub



                    Private Sub lstRemoteFiles_MouseUp(Button As _

                        Integer, Shift As Integer, _

                        X As Single, Y As Single)

                        lstRemoteFiles.Drag vbEndDrag

                    End Sub
0

Featured Post

Find Ransomware Secrets With All-Source Analysis

Ransomware has become a major concern for organizations; its prevalence has grown due to past successes achieved by threat actors. While each ransomware variant is different, we’ve seen some common tactics and trends used among the authors of the malware.

Join & Write a Comment

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
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.
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…
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…

708 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

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now