![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PureBasic) Co:Z SFTP Binary File Download (from z/OS IBM Mainframe)Demonstrates how to download a binary file, such as a .zip, from a Co:Z SFTP server on a z/OS IBM Mainframe. Note: This example requires Chilkat v11.0.0 or greater.
IncludeFile "CkSFtpDir.pb" IncludeFile "CkSFtp.pb" Procedure ChilkatExample() success.i = 0 ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. sftp.i = CkSFtp::ckCreate() If sftp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf ; Connect to the SSH server. hostname.s = "sftp.example.com" port.i = 22 success = CkSFtp::ckConnect(sftp,hostname,port) If success = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) ProcedureReturn EndIf success = CkSFtp::ckAuthenticatePw(sftp,"myLogin","myPassword") If success = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) ProcedureReturn EndIf success = CkSFtp::ckInitializeSftp(sftp) If success = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) ProcedureReturn EndIf ; To download a binary file from the Co:Z SFTP server, ; we must switch to binary mode in the following unconventional way. ; We pretend to fetch a directory listing for "/+mode=binary" ; This has the effect of putting the server in binary mode for transfers. handle.s = CkSFtp::ckOpenDir(sftp,"/+mode=binary") If CkSFtp::ckLastMethodSuccess(sftp) = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) ProcedureReturn EndIf ; Download the "directory listing" (but it's not actually a directory listing, and we'll just discard it.) dirListing.i = CkSFtpDir::ckCreate() If dirListing.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkSFtp::ckReadDirListing(sftp,handle,dirListing) If success = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) CkSFtpDir::ckDispose(dirListing) ProcedureReturn EndIf ; Close the directory handle: success = CkSFtp::ckCloseHandle(sftp,handle) If success = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) CkSFtpDir::ckDispose(dirListing) ProcedureReturn EndIf ; Download the binary file: localFilePath.s = "c:/temp/test.zip" remoteFilePath.s = "test.zip" success = CkSFtp::ckDownloadFileByName(sftp,remoteFilePath,localFilePath) If success = 0 Debug CkSFtp::ckLastErrorText(sftp) CkSFtp::ckDispose(sftp) CkSFtpDir::ckDispose(dirListing) ProcedureReturn EndIf Debug "Success." CkSFtp::ckDispose(sftp) CkSFtpDir::ckDispose(dirListing) ProcedureReturn EndProcedure |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.