PowerShell
PowerShell
File Read Blocks
Demonstrates how to read a file in fixed-size blocks (except for the very last block).Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# Demonstrates how to read a file in blocks,
# which can be useful when uploading to cloud storage
# services such as Azure, S3, Google, etc.
# For this example, we're simply writing the blocks
# to an output file, and then checking to see if the
# resulting file contents equals the original file contents.
$facSrc = New-Object Chilkat.FileAccess
$facDest = New-Object Chilkat.FileAccess
$srcPath = "qa_data/xml/hamlet.xml"
$destPath = "qa_output/hamletOut.xml"
$success = $facSrc.OpenForRead($srcPath)
$success = $facDest.OpenForWrite($destPath)
# Assuming success for the example..
# How many 1024-byte blocks? (Including 1 for the last partial block)
$numBlocks = $facSrc.GetNumBlocks(1024)
$i = 0
while (($i -lt $numBlocks)) {
$dataBlock = $facSrc.ReadBlock($i,1024)
if ($facSrc.LastMethodSuccess -ne $true) {
$($facSrc.LastErrorText)
exit
}
$success = $facDest.FileWrite($dataBlock)
if ($success -ne $true) {
$($facDest.LastErrorText)
exit
}
$i = $i + 1
}
$facSrc.FileClose()
$facDest.FileClose()
$bEqual = $facSrc.FileContentsEqual($srcPath,$destPath)
if ($bEqual -ne $true) {
$("Something went wrong!")
exit
}
$("File successfully copied by blocks.")