Description
| Downloads files from the SFTP server to a local directory tree. Synchronization modes include:
- mode=0: Download all files
- mode=1: Download all files that do not exist on the local filesystem.
- mode=2: Download newer or non-existant files.
- mode=3: Download only newer files. If a file does not already exist on the local filesystem, it is not downloaded from the server.
- mode=5: Download only missing files or files with size differences.
- mode=6: Same as mode 5, but also download newer files.
- mode=99: Do not download files, but instead delete remote files that do not exist locally.
If recurse is 0, then the remote directory tree is not recursively descended.
Important: If the remoteRoot is an absolute path, then it is a path from the root of the server's filesystem. For example, "/home/joe/sourceDir". Use a relative path to specify a directory relative to the $HOME directory of the SSH user account. For example, "./sourceDir".
Note: After this method returns, the paths of the downloaded files are available in the SyncedFiles property.
Returns 1 for success, 0 for failure.
|
Example Download all Files in a Directory
| Sub Main Dim success As Long success = sftp.Connect("my-ssh-server.com",22) If (success = 1) Then success = sftp.AuthenticatePw("mySshLogin","mySshPassword") End If If (success = 1) Then success = sftp.InitializeSftp() End If If (success <> 1) Then Debug.Print sftp.LastErrorText Exit Sub End If ' Download all the files from the remote directory "syncDownloadTest/xml" ' into our local directory "qa_output" ' Both directories are relative paths. The remote directory ' is relative to the HOME directory of the SSH user account. ' The local directory is relative to the current working directory of the process. ' It is also possible to use absolute paths. Dim remoteDir As String remoteDir = "syncDownloadTest/xml" Dim localDir As String localDir = "qa_output" ' Mode 0 causes SyncTreeDownload to download all files. Dim mode As Long mode = 0 ' Do not recursively descend the remote directory tree. Just download all the files in specified directory. Dim recursive As Long recursive = 0 success = sftp.SyncTreeDownload(remoteDir,localDir,mode,recursive) If (success <> 1) Then Debug.Print sftp.LastErrorText Exit Sub End If Debug.Print "Success." End Sub
|
Example Download
| Sub Main Dim success As Long success = sftp.Connect("my-ssh-server.com",22) If (success = 1) Then success = sftp.AuthenticatePw("mySshLogin","mySshPassword") End If If (success = 1) Then success = sftp.InitializeSftp() End If If (success <> 1) Then Debug.Print sftp.LastErrorText Exit Sub End If ' Synchronize the remote directory tree rooted at "syncDownloadTest/xml" ' with the local directory tree rooted at "qa_output" ' Both directories are relative paths. The remote directory ' is relative to the HOME directory of the SSH user account. ' The local directory is relative to the current working directory of the process. ' It is also possible to use absolute paths. Dim remoteDir As String remoteDir = "syncDownloadTest/xml" Dim localDir As String localDir = "qa_output" ' Possible modes that can be passed to the SyncTreeDownload method are: ' mode=0: Download all files ' mode=1: Download all files that do not exist on the local filesystem. ' mode=2: Download newer or non-existant files. ' mode=3: Download only newer files. If a file does not already exist on the local filesystem, it is not downloaded from the server. ' mode=5: Download only missing files or files with size differences. ' mode=6: Same as mode 5, but also download newer files. ' mode=99: Do not download files, but instead delete remote files that do not exist locally. ' This example will use mode 6 to download missing, newer, or files with size differences. Dim mode As Long mode = 6 ' This example will turn on recursion to synchronize the entire tree. ' Recursion can be turned off to synchronize the files of a single directory. Dim recursive As Long recursive = 1 success = sftp.SyncTreeDownload(remoteDir,localDir,mode,recursive) If (success <> 1) Then Debug.Print sftp.LastErrorText Exit Sub End If Debug.Print "Success." End Sub
|