We are testing interview quizzes and created a demo app. Now, We require your help. Please take this quiz and provide inputs for content improvement. Interview Quiz
VB.Net: Download file from FTP and UnZip
Experience:
Many application requires data migration tasks to execute on daily basis. To achieve this we generally seek help of SSIS package, if at all we are making use of SQL sever.
So, consider a case where you need to download a file from FTP location. Besides this, what if the file present on the FTP is in Zip format. How will you unzip and download. . . ?
Don’t worry!! Here is the solution:
You need to import the following namespaces:
System.IO.FileStream System.IO.Compression Microsoft.SqlServer.Dts.Runtime
The below code is written in VB.Net:
CODE:
Dim success As Boolean = True
Dim FilePath As String
FilePath = Dts.Variables("FilePath").Value.ToString()
Dim uncompressedFileName As String
Dim bytes(Int16.MaxValue) As Byte
Dim n As Integer = 1
uncompressedFileName = FilePath
Dts.Events.FireInformation(0, "", "decompressing " + FeedPath + " to " + uncompressedFileName, Nothing, -1, True)
Using writer As New IO.FileStream(uncompressedFileName, FileMode.Create)
Using compressedStream As Stream = File.Open(FilePath, FileMode.Open, FileAccess.Read, FileShare.None)
Using unzipper As New GZipStream(compressedStream, CompressionMode.Decompress)
Do Until n = 0
n = unzipper.Read(bytes, 0, bytes.Length)
writer.Write(bytes, 0, n)
Loop
unzipper.Close()
End Using
compressedStream.Close()
End Using
writer.Close()
success = True
End UsingBrief Overview:
- Here “FilePath” is the location of the respective file on the FTP and Dts is the main object on which your package does all the operation and finally returns the results.
- GZipStream(Read more here) is the method used for compression task which is present inside System.IO.Compression
- Dts.Variables(“FilePath”).Value – This line is using the variable named “FilePath” which should be declared while creation of the package, probably one among the user defined variables.
- Please note that it is recommended and good coding habit to close the IO stream connection used while read/write operation of any file.
Rest of the code is self explanatory. Happy Compression!!









