A function to remove the cache problem with ftp

Saturday, April 18, 2009

 

Public Function SaveReadMeFile(ByVal host As String, ByVal ftpusername As String, ByVal ftppassword As String, ByVal localpath As String)

Dim cp As New Cache.RequestCachePolicy(RequestCacheLevel.NoCacheNoStore)

'Create a request

Dim URI As String = host

Dim ftp As System.Net.FtpWebRequest = CType(System.Net.FtpWebRequest.Create(URI), System.Net.FtpWebRequest)

'Set the credentials

ftp.Credentials = New System.Net.NetworkCredential(ftpusername, ftppassword)

'Turn off KeepAlive (will close connection on completion)

ftp.KeepAlive = False

'we want a binary

ftp.UseBinary = False

'Define the action required (in this case, download a file)

ftp.Method = System.Net.WebRequestMethods.Ftp.DownloadFile

ftp.CachePolicy = cp

'If we were using a method that uploads data e.g. UploadFile

'we would open the ftp.GetRequestStream here an send the data

'Get the response to the Ftp request and the associated stream

Using response As System.Net.FtpWebResponse = CType(ftp.GetResponse, System.Net.FtpWebResponse)

Using responseStream As IO.Stream = response.GetResponseStream

'loop to read & write to file

Using fs As New IO.FileStream(localpath, IO.FileMode.Create)

Dim buffer(2047) As Byte

Dim read As Integer = 0

Do

read = responseStream.Read(buffer, 0, buffer.Length)

fs.Write(buffer, 0, read)

Loop Until read = 0 'see Note(1)

responseStream.Close()

fs.Flush()

fs.Close()

End Using

responseStream.Close()

End Using

response.Close()

End Using

Return True

End Function

 
 
'''how to use the function
 
 

Dim tmp As Boolean = False

tmp = Me.SaveReadMeFile(vsFtpZipPath & vguid & "/out/readme.xml", vftpUsername, vftpPassword, vsLocalZipPath & "readme.xml")


0 comments

Post a Comment

LinkWithin

Blog Widget by LinkWithin

Recommended Books