Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) SFTP Get Size of File on ServerSee more SFTP ExamplesDemonstrates how to get the size of an existing file on the server.
Use ChilkatAx-win32.pkg Procedure Test Handle hoSftp String sHostname Integer iPort Boolean iSuccess Boolean iBFollowLinks Boolean iBIsHandle Integer iFileSize String sFileSizeStr String sHandle String sTemp1 Boolean bTemp1 // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatSFtp)) To hoSftp If (Not(IsComObjectCreated(hoSftp))) Begin Send CreateComObject of hoSftp End // Set some timeouts, in milliseconds: Set ComConnectTimeoutMs Of hoSftp To 5000 Set ComIdleTimeoutMs Of hoSftp To 10000 // Connect to the SSH server. // The standard SSH port = 22 // The hostname may be a hostname or IP address. Move "sftp.example.com" To sHostname Move 22 To iPort Get ComConnect Of hoSftp sHostname iPort To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // Authenticate with the SSH server. Chilkat SFTP supports // both password-based authenication as well as public-key // authentication. This example uses password authenication. Get ComAuthenticatePw Of hoSftp "myLogin" "myPassword" To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // After authenticating, the SFTP subsystem must be initialized: Get ComInitializeSftp Of hoSftp To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // Assuming we know the file size won't be too large, we get the size as a 32-bit integer. // For SFTP, the remote file path is always either a path relative to the HOME directory of the user account, or an absolute path on the server. Move True To iBFollowLinks Move False To iBIsHandle Get ComGetFileSize32 Of hoSftp "someDir/someFile.dat" iBFollowLinks iBIsHandle To iFileSize If (iFileSize < 0) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End Showln "file size = " iFileSize // If the file size might be too large for a 32-bit signed integer, then get the size as a decimal string. // You can convert the string to a 64-bit integer in your programming language. Get ComGetFileSizeStr Of hoSftp "someDir/someFile.dat" iBFollowLinks iBIsHandle To sFileSizeStr Get ComLastMethodSuccess Of hoSftp To bTemp1 If (bTemp1 = False) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End Showln "file size = " sFileSizeStr // You can alternatively get the size with an open file handle. Get ComOpenFile Of hoSftp "someDir/someFile.dat" "readOnly" "openExisting" To sHandle Get ComLastMethodSuccess Of hoSftp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End // Get the size using the handle. Move True To iBIsHandle Get ComGetFileSize32 Of hoSftp "someDir/someFile.dat" iBFollowLinks iBIsHandle To iFileSize If (iFileSize < 0) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End Showln "file size = " iFileSize // ----------------------------------------------------------------------------- // Don't forget to close the file handle. // Otherwise open handles will accumulate on the server until eventually a limit // is reached and the server will fail on a call to OpenFile. // ----------------------------------------------------------------------------- // Close the file. Get ComCloseHandle Of hoSftp sHandle To iSuccess If (iSuccess <> True) Begin Get ComLastErrorText Of hoSftp To sTemp1 Showln sTemp1 Procedure_Return End End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.