Differences

This shows you the differences between the selected revisions of the page.

library_example_recursive_download_custom_error_handling 2018-02-20 library_example_recursive_download_custom_error_handling 2022-06-16 (current)
Line 4: Line 4:
The following two approaches show how to override the default behaviour. The following two approaches show how to override the default behaviour.
-===== Handling Session.QueryReceived event =====+Particularly the first approach with ''[[library_session_queryreceived|Session.QueryReceived]]'' event is relevant for other batch operations as well, including ''[[library_session_putfiles|Session.PutFiles]]'' and ''[[library_session_synchronizedirectories|Session.SynchronizeDirectories]]''. 
 + 
 +===== [[queryreceived]] Handling Session.QueryReceived event =====
You can choose how an error is processed by handling ''[[library_session_queryreceived|Session.QueryReceived]]'' event. You can choose how an error is processed by handling ''[[library_session_queryreceived|Session.QueryReceived]]'' event.
Line 34: Line 36:
</code> </code>
-==== PowerShell Example ====+==== [[event_powershell]] PowerShell Example ====
<code powershell> <code powershell>
Line 50: Line 52:
-===== Explicit Implementation of a File Tree Download =====+===== [[tree_download]] Explicit Implementation of a File Tree Download =====
In case you need even more control over a download process, you can implement walking of a directory tree explicitly and handle each file individually, as you need. In case you need even more control over a download process, you can implement walking of a directory tree explicitly and handle each file individually, as you need.
Line 77: Line 79:
                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 89: Line 91:
                // Enumerate files and directories to download                 // Enumerate files and directories to download
 +                var opts = WinSCP.EnumerationOptions.EnumerateDirectories |
 +                          WinSCP.EnumerationOptions.AllDirectories;
                IEnumerable<RemoteFileInfo> fileInfos =                 IEnumerable<RemoteFileInfo> fileInfos =
-                    session.EnumerateRemoteFiles( +                    session.EnumerateRemoteFiles(remotePath, null, opts);
-························remotePath, null, +
-                       EnumerationOptions.EnumerateDirectories | +
-                            EnumerationOptions.AllDirectories);+
                foreach (RemoteFileInfo fileInfo in fileInfos)                 foreach (RemoteFileInfo fileInfo in fileInfos)
Line 146: Line 147:
    # Use Generate Session URL function to obtain a value for -sessionUrl parameter.     # Use Generate Session URL function to obtain a value for -sessionUrl parameter.
    [Parameter(Mandatory = $True)]     [Parameter(Mandatory = $True)]
-    $sessionUrl = "sftp://user:mypassword;fingerprint=ssh-rsa-xx-xx-xx@example.com/",+    $sessionUrl = "sftp://user:mypassword;fingerprint=ssh-rsa-xxxxxxxxxxx...@example.com/",
    [Parameter(Mandatory = $True)]     [Parameter(Mandatory = $True)]
    $remotePath,     $remotePath,
Line 226: Line 227:
==== Upload ==== ==== Upload ====
-For an example of walking a local tree to upload files individually, see [[library_example_moves_files_keeping_directory_structure|Recursively move files in directory tree to/from SFTP/FTP server while preserving source directory structure]].+For an example of walking a local tree to upload files individually, see [[library_example_moves_files_keeping_directory_structure|*]].
-The upload example calls ''[[library_operationresultbase#check|OperationResultBase.Check]]'', so it aborts on any error. Just replace the call with ''[[library_operationresultbase#issuccess|OperationResultBase.IsSuccess]]'' test as this example does. See [[library_session#results|Capturing Results of Operations]]+The upload example calls ''[[library_operationresultbase#check|OperationResultBase.Check]]'', so it aborts on any error. Just replace the call with ''[[library_operationresultbase#issuccess|OperationResultBase.IsSuccess]]'' test, as the download example above does. See [[library_session#results|Capturing results of operations]].

Last modified: by martin