Imports System
Imports System.Net
Imports System.IO
Imports System.Text
Public Class FTPService
Public Sub FTPUpLoad(ByVal HostAddress As String, _
ByVal UserId As String, _
ByVal PassWord As String, _
ByVal LocalFile As String, _
ByVal RemoteFile As String, _
ByRef RETCode As Boolean, _
Optional ByRef RETMSG As String = "")
Dim FileURL As String = "ftp://" + HostAddress + "/ " + RemoteFile
Dim FtpRequest As FtpWebRequest = CType(WebRequest.Create(FileURL),FtpWebRequest) '
Dim IOLen As Integer = 10240
Dim IOBuf(IOLen) As Byte
FtpRequest.Credentials = New NetworkCredential(UserId, PassWord)
FtpRequest.Method = WebRequestMethods.Ftp.UploadFile
FtpRequest.UseBinary = True
FtpRequest.UsePassive = True
Dim ReadStream As FileStream = New FileStream(LocalFile, FileMode.Open, FileAccess.Read)
Dim WriteStream As Stream = FtpRequest.GetRequestStream
Do
IOLen = ReadStream.Read(IOBuf, 0, 10240)
WriteStream.Write(IOBuf, 0, IOLen)
Loop While IOLen > 0
Application.DoEvents()
System.Threading.Thread.Sleep(100)
ReadStream.Close()
ReadStream.Dispose()
WriteStream.Close()
WriteStream.Dispose()
Dim FtpResponse As WebResponse = FtpRequest.GetResponse
Dim RespDesc As String = CType(FtpResponse, FtpWebResponse).StatusDescription
If Mid(RespDesc, 1, 3) <> "226" Then
RETCode = False
Else
RETCode = True
End If
RETMSG = Mid(RespDesc, 5)
End Sub
Public Sub FTPDelFile(ByVal HostAddress As String, _
ByVal UserId As String, _
ByVal PassWord As String, _
ByVal RemoteFile As String, _
ByRef RETCode As Boolean, _
Optional ByRef RETMSG As String = "")
Dim FileURL As String = "ftp://" + HostAddress + "/ " + RemoteFile
Dim FtpRequest As FtpWebRequest = CType(WebRequest.Create(FileURL), FtpWebRequest)
FtpRequest.Credentials = New NetworkCredential(UserId, PassWord)
FtpRequest.Method = WebRequestMethods.Ftp.DeleteFile
Dim FtpResponse As WebResponse = FtpRequest.GetResponse
Application.DoEvents()
System.Threading.Thread.Sleep(100)
Dim RespDesc As String = CType(FtpResponse, FtpWebResponse).StatusDescription
If Mid(RespDesc, 1, 3) <> "250" Then
RETCode = False
Else
RETCode = True
End If
RETMSG = Mid(RespDesc, 5)
End Sub
Public Sub FTPDownLoad(ByVal HostAddress As String, _
ByVal UserId As String, _
ByVal PassWord As String, _
ByVal LocalFile As String, _
ByVal RemoteFile As String, _
ByRef RETCode As Boolean, _
Optional ByRef RETMSG As String = "")
Dim FileURL As String = "ftp://" + HostAddress + "/ " + RemoteFile
Dim FtpRequest As FtpWebRequest = DirectCast(WebRequest.Create(FileURL), FtpWebRequest)
FtpRequest.Credentials = New NetworkCredential(UserId, PassWord)
FtpRequest.Method = WebRequestMethods.Ftp.DownloadFile
FtpRequest.UseBinary = True
FtpRequest.UsePassive = True
Dim WriteStream As FileStream = New FileStream(LocalFile, FileMode.Create, FileAccess.ReadWrite)
Dim FtpResponse As WebResponse = FtpRequest.GetResponse
Dim ReadStream As Stream = FtpResponse.GetResponseStream
Dim IOLen As Integer = 10240
Dim IOBuf(IOLen) As Byte
Do
IOLen = ReadStream.Read(IOBuf, 0, 10240)
WriteStream.Write(IOBuf, 0, IOLen)
Loop While IOLen > 0
Application.DoEvents()
System.Threading.Thread.Sleep(100)
ReadStream.Close()
ReadStream.Dispose()
WriteStream.Close()
WriteStream.Dispose()
Dim RespDesc As String = CType(FtpResponse, FtpWebResponse).StatusDescription
If Mid(RespDesc, 1, 3) <> "226" Then
RETCode = False
Else
RETCode = True
End If
RETMSG = Mid(RespDesc, 5)
End Sub
End Class