Skip to content

Instantly share code, notes, and snippets.

@PrateekKumarSingh
Created February 25, 2019 18:14
Show Gist options
  • Save PrateekKumarSingh/1fbad85045e579fef824c2c2d53c5d01 to your computer and use it in GitHub Desktop.
Save PrateekKumarSingh/1fbad85045e579fef824c2c2d53c5d01 to your computer and use it in GitHub Desktop.
function DownloadFTPFile ($Source, $Target, $UserName, $Password) {
$ftprequest = [System.Net.FtpWebRequest]::create($Source)
$ftprequest.Credentials = New-Object System.Net.NetworkCredential($username, $password)
$ftprequest.Method = [System.Net.WebRequestMethods+Ftp]::DownloadFile
$ftprequest.UseBinary = $true
$ftprequest.KeepAlive = $false
# send the ftp request to the server
$ftpresponse = $ftprequest.GetResponse()
# get a download stream from the server response
$responsestream = $ftpresponse.GetResponseStream()
# create the target file on the local system and the download buffer
$targetfile = New-Object IO.FileStream ($Target, [IO.FileMode]::Create)
[byte[]]$readbuffer = New-Object byte[] 1024
# loop through the download stream and send the data to the target file
do {
$readlength = $responsestream.Read($readbuffer, 0, 1024)
$targetfile.Write($readbuffer, 0, $readlength)
}
while ($readlength -ne 0)
$targetfile.close()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment