Differences
This shows you the differences between the selected revisions of the page.
| library_session_getfiles 2017-10-09 | library_session_getfiles 2022-08-12 (current) | ||
| Line 2: | Line 2: | ||
| [[task_download|Downloads]] one or more files from remote directory to local directory. | [[task_download|Downloads]] one or more files from remote directory to local directory. | ||
| - | You can have WinSCP [[ui_generateurl|generate a code template]] for ''Session.GetFiles'' for you. | + | You can have WinSCP [[guide_automation#generating|generate a code template]] for ''Session.GetFiles'' for you. |
| + | The method is quite powerful, but due to a wide range of it uses, its syntax can be cumbersome initially. For specific tasks, consider using convenient alternatives: [[library_session_getfilestodirectory|''Session.GetFilesToDirectory'']] and [[library_session_getfiletodirectory|''Session.GetFileToDirectory'']]. | ||
| ===== Syntax ===== | ===== Syntax ===== | ||
| Line 16: | Line 17: | ||
| <code vbnet *> | <code vbnet *> | ||
| - | Public Function GetFiles( _ | + | Public Function GetFiles( |
| - | ByVal remotePath As String, _ | + | remotePath As String, |
| - | ByVal localPath As String, _ | + | localPath As String, |
| - | ByVal Optional remove As Boolean = False, _ | + | Optional remove As Boolean = False, |
| - | ByVal Optional options As TransferOptions = Nothing _ | + | Optional options As TransferOptions = Nothing |
| ) As TransferOperationResult | ) As TransferOperationResult | ||
| </code> | </code> | ||
| Line 28: | Line 29: | ||
| | string ==remotePath== | Full path to remote directory followed by slash and [[library_wildcard|wildcard]] to select files or subdirectories to download. To download all files in a directory, use mask ''*''. | | | string ==remotePath== | Full path to remote directory followed by slash and [[library_wildcard|wildcard]] to select files or subdirectories to download. To download all files in a directory, use mask ''*''. | | ||
| | string ==localPath== | Full path to download the file to. When downloading multiple files, the filename in the path should be replaced with [[operation_mask|operation mask]] or omitted (path ends with backslash). | | | string ==localPath== | Full path to download the file to. When downloading multiple files, the filename in the path should be replaced with [[operation_mask|operation mask]] or omitted (path ends with backslash). | | ||
| - | | bool ==remove== | When set to ''true'', deletes source remote file(s) after transfer. Defaults to ''false''. | | + | | bool ==remove== | When set to ''true'', deletes source remote file(s) after a successful transfer. Defaults to ''false''. | |
| | [[library_transferoptions|TransferOptions]] options | Transfer options. Defaults to ''null'', what is equivalent to ''new TransferOptions()''. | | | [[library_transferoptions|TransferOptions]] options | Transfer options. Defaults to ''null'', what is equivalent to ''new TransferOptions()''. | | ||
| Line 34: | Line 35: | ||
| ''[[library_transferoperationresult|TransferOperationResult]]''. See also [[library_session#results|Capturing results of operations]]. | ''[[library_transferoperationresult|TransferOperationResult]]''. See also [[library_session#results|Capturing results of operations]]. | ||
| - | ===== Exceptions ===== | + | ===== [[exceptions]] Exceptions ===== |
| ^ Exception ^ Condition ^ | ^ Exception ^ Condition ^ | ||
| | InvalidOperationException | Session is not opened. | | | InvalidOperationException | Session is not opened. | | ||
| Line 43: | Line 44: | ||
| ===== Remarks ===== | ===== Remarks ===== | ||
| - | Event ''[[library_session_filetransferred|Session.FileTransferred]]'' is raised for every downloaded file. | + | Event ''[[library_session_filetransferred|Session.FileTransferred]]'' is raised for every downloaded file. Also raises [[library_session_filetransferprogress|''Session.FileTransferProgress'']] throughout the transfer. |
| The download aborts on the first error. See how to [[library_example_recursive_download_custom_error_handling|implement recursive directory tree download with custom error handling]]. | The download aborts on the first error. See how to [[library_example_recursive_download_custom_error_handling|implement recursive directory tree download with custom error handling]]. | ||
| ===== [[example]] Examples ===== | ===== [[example]] Examples ===== | ||
| + | |||
| ==== [[csharp]] C# Example ==== | ==== [[csharp]] C# Example ==== | ||
| <code csharp> | <code csharp> | ||
| Line 66: | Line 68: | ||
| UserName = "user", | UserName = "user", | ||
| Password = "mypassword", | Password = "mypassword", | ||
| - | SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..." | + | SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx..." |
| }; | }; | ||
| Line 80: | Line 82: | ||
| TransferOperationResult transferResult; | TransferOperationResult transferResult; | ||
| transferResult = | transferResult = | ||
| - | session.GetFiles("/home/user/*", "d:\\download\\", false, transferOptions); | + | session.GetFiles("/home/user/*", @"d:\download\", false, transferOptions); |
| // Throw on any error | // Throw on any error | ||
| Line 119: | Line 121: | ||
| .UserName = "user" | .UserName = "user" | ||
| .Password = "mypassword" | .Password = "mypassword" | ||
| - | .SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..." | + | .SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx..." |
| End With | End With | ||
| Line 169: | Line 171: | ||
| UserName = "user" | UserName = "user" | ||
| Password = "mypassword" | Password = "mypassword" | ||
| - | SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..." | + | SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx..." |
| } | } | ||
| Line 203: | Line 205: | ||
| exit 0 | exit 0 | ||
| } | } | ||
| - | catch [Exception] | + | catch |
| { | { | ||
| Write-Host "Error: $($_.Exception.Message)" | Write-Host "Error: $($_.Exception.Message)" | ||
| Line 226: | Line 228: | ||
| sessionOptions.UserName = "user"; | sessionOptions.UserName = "user"; | ||
| sessionOptions.Password = "mypassword"; | sessionOptions.Password = "mypassword"; | ||
| - | sessionOptions.SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..."; | + | sessionOptions.SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx..."; |
| var session = WScript.CreateObject("WinSCP.Session"); | var session = WScript.CreateObject("WinSCP.Session"); | ||
| Line 287: | Line 289: | ||
| .UserName = "user" | .UserName = "user" | ||
| .Password = "mypassword" | .Password = "mypassword" | ||
| - | .SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx..." | + | .SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx..." |
| End With | End With | ||
| Line 322: | Line 324: | ||
| ==== Real-Life Examples ==== | ==== Real-Life Examples ==== | ||
| - | * [[script_download_timestamped_filename|Downloading file to timestamped-filename]]; | + | * [[script_download_timestamped_filename|*]]; |
| - | * [[script_download_most_recent_file|Downloading the most recent file]]; | + | * [[script_download_most_recent_file|*]]; |
| - | * [[library_example_recursive_search_text|Search recursively for text in remote directory / Grep files over SFTP/FTP protocol]]; | + | * [[library_example_recursive_search_text|*]]; |
| - | * [[library_example_recursive_download_custom_error_handling|Recursively download directory tree with custom error handling]]; | + | * [[library_example_recursive_download_custom_error_handling|*]]; |
| - | * [[library_example_check_existence_timestamp|Checking file existence and timestamp]]. | + | * [[library_example_check_existence_timestamp|*]]; |
| + | * [[extension_archive_and_download|*]]. | ||