This is an old revision of the document!
put
Uploads one or more files from local directory to remote directory.
Converting to .NET Assembly
When converting script to .NET Assembly, map put
command to Session.PutFiles
method.
Advertisement
Parameters mapping: Command parameter file
maps to method parameter localPath
. When multiple source file parameters are used, you need to call Session.PutFiles
multiple times. Command parameter directory/newname
maps to method parameter remotePath
. You have to convert relative paths to absolute paths.
Switches mapping:
Switch | Mapping |
---|---|
-delete |
Value true ($True in PowerShell) for method parameter remove . |
-latest |
See Uploading the most recent file. |
-resume -append -preservetime -nopreservetime -permissions -nopermissions -transfer -filemask -resumesupport -speed=<kbps> |
Converting transfer settings scripting switches to .NET assembly class TransferSettings . |
-neweronly |
Not supported. Use Session.SynchronizeDirectories instead. |
To emulate the (default) option batch abort
mode, call TransferOperationResult.Check
on method’s result. See also Capturing results of operations.
For example, following script snippet:
cd /home/martinp lcd d:\ ... put -delete -filemask=*>1M -resumesupport=off *.txt *.xml web/
maps to following PowerShell code:
$transferOptions = New-Object WinSCP.TransferOptions # -filemask=*>1M $transferOptions.FileMask = "*>1M" # -resumesupport=off $transferOptions.ResumeSupport.State = [WinSCP.TransferResumeSupportState]::Off # Absolute paths + $True for -delete + Two calls for two source parameters # + calling Check on result to emulate the (default) "option batch abort" mode $session.PutFiles("d:\*.txt", "/home/martinp/web/", $True, $transferOptions).Check() $session.PutFiles("d:\*.xml", "/home/martinp/web/", $True, $transferOptions).Check()
Advertisement