|  | 
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
| (C) SFTP Get Size of File on ServerSee more SFTP ExamplesDemonstrates how to get the size of an existing file on the server.
 #include <C_CkSFtp.h> void ChilkatSample(void) { HCkSFtp sftp; const char *hostname; int port; BOOL success; BOOL bFollowLinks; BOOL bIsHandle; int fileSize; const char *fileSizeStr; const char *handle; // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. sftp = CkSFtp_Create(); // Set some timeouts, in milliseconds: CkSFtp_putConnectTimeoutMs(sftp,5000); CkSFtp_putIdleTimeoutMs(sftp,10000); // Connect to the SSH server. // The standard SSH port = 22 // The hostname may be a hostname or IP address. hostname = "sftp.example.com"; port = 22; success = CkSFtp_Connect(sftp,hostname,port); if (success != TRUE) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } // Authenticate with the SSH server. Chilkat SFTP supports // both password-based authenication as well as public-key // authentication. This example uses password authenication. success = CkSFtp_AuthenticatePw(sftp,"myLogin","myPassword"); if (success != TRUE) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } // After authenticating, the SFTP subsystem must be initialized: success = CkSFtp_InitializeSftp(sftp); if (success != TRUE) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } // 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. bFollowLinks = TRUE; bIsHandle = FALSE; fileSize = CkSFtp_GetFileSize32(sftp,"someDir/someFile.dat",bFollowLinks,bIsHandle); if (fileSize < 0) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } printf("file size = %d\n",fileSize); // 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. fileSizeStr = CkSFtp_getFileSizeStr(sftp,"someDir/someFile.dat",bFollowLinks,bIsHandle); if (CkSFtp_getLastMethodSuccess(sftp) == FALSE) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } printf("file size = %s\n",fileSizeStr); // You can alternatively get the size with an open file handle. handle = CkSFtp_openFile(sftp,"someDir/someFile.dat","readOnly","openExisting"); if (CkSFtp_getLastMethodSuccess(sftp) != TRUE) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } // Get the size using the handle. bIsHandle = TRUE; fileSize = CkSFtp_GetFileSize32(sftp,"someDir/someFile.dat",bFollowLinks,bIsHandle); if (fileSize < 0) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } printf("file size = %d\n",fileSize); // ----------------------------------------------------------------------------- // 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. success = CkSFtp_CloseHandle(sftp,handle); if (success != TRUE) { printf("%s\n",CkSFtp_lastErrorText(sftp)); CkSFtp_Dispose(sftp); return; } CkSFtp_Dispose(sftp); } | ||||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.