Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
|
SFTP Download Files Matching a PatternDemonstrates how to download the files in a remote SFTP directory matching a file pattern. The example opens a directory, iterates over the files, and downloads each file matching a file pattern, such as "*.xml".
LOCAL loSftp LOCAL lnSuccess LOCAL lnPort LOCAL lcHostname LOCAL lcHandle LOCAL lcDirPath LOCAL loDirListing LOCAL i LOCAL n LOCAL loFileObj LOCAL lcRemoteFilePath LOCAL lcLocalFilePath * 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. lcDirPath = "abc123" lcHandle = loSftp.OpenDir(lcDirPath) 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 * Does this filename match the desired pattern? * Write code here to determine if it's a match or not. * Assuming it's a match, you would download the file * like this: lcRemoteFilePath = lcDirPath + "/" lcRemoteFilePath = lcRemoteFilePath + loFileObj.Filename lcLocalFilePath = loFileObj.Filename lnSuccess = loSftp.DownloadFileByName(lcRemoteFilePath,lcLocalFilePath) IF (lnSuccess <> 1) THEN =MESSAGEBOX(loSftp.LastErrorText) QUIT ENDIF 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-2010 Chilkat Software, Inc. All Rights Reserved.
Mail Component · .NET Email Component · ASP Mail Component · XML Parser