Chilkat HOME Android™ ASP Visual Basic VB.NET C# iOS (IPhone) Objective-C C++ C Unicode C++ Unicode C MFC Delphi DLL Delphi ActiveX FoxPro Java Perl PHP Extension PHP ActiveX Python PowerShell Ruby SQL Server VBScript
|
SFTP Read Directory ListingDemonstrates how to download a directory listing and iterate over the files.
LOCAL loSftp LOCAL lnSuccess LOCAL lnPort LOCAL lcHostname LOCAL lcHandle LOCAL loDirListing LOCAL i LOCAL n LOCAL loFileObj * Important: It is helpful to send the contents of the * sftp.LastErrorText property when requesting support. loSftp = CreateObject('Chilkat.SFtp') * Any string automatically begins a fully-functional 30-day trial. lnSuccess = loSftp.UnlockComponent("Anything for 30-day trial") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF * Set some timeouts, in milliseconds: loSftp.ConnectTimeoutMs = 5000 loSftp.IdleTimeoutMs = 10000 * Connect to the SSH server. * The standard SSH port = 22 * The hostname may be a hostname or IP address. lcHostname = "www.my-sftp-server.com" lnPort = 22 lnSuccess = loSftp.Connect(lcHostname,lnPort) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF * Authenticate with the SSH server. Chilkat SFTP supports * both password-based authenication as well as public-key * authentication. This example uses password authenication. lnSuccess = loSftp.AuthenticatePw("myLogin","myPassword") IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF * After authenticating, the SFTP subsystem must be initialized: lnSuccess = loSftp.InitializeSftp() IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF * Open a directory on the server... * Paths starting with a slash are "absolute", and are relative * to the root of the file system. Names starting with any other * character are relative to the user's default directory (home directory). * A path component of ".." refers to the parent directory, * and "." refers to the current directory. lcHandle = loSftp.OpenDir(".") IF (lcHandle = NULL ) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF * Download the directory listing: loDirListing = loSftp.ReadDir(lcHandle) IF (loDirListing = NULL ) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF * Iterate over the files. n = loDirListing.NumFilesAndDirs IF (n = 0) THEN ? "No entries found in this directory." ELSE FOR i = 0 TO n - 1 loFileObj = loDirListing.GetFileObject(i) ? loFileObj.Filename ? loFileObj.FileType ? "Size in bytes: " + loFileObj.Size32 ? "----" RELEASE loFileObj NEXT ENDIF RELEASE loDirListing * Close the directory lnSuccess = loSftp.CloseHandle(lcHandle) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF =MESSAGEBOX("Success.") |
© 2000-2013 Chilkat Software, Inc. All Rights Reserved.