Back to product page

PutFiles method


Uploads multiple files in a sequence, recursive.

Type

None

Syntax

  • Basic
object.PutFiles [LocalPath], [RemotePath], [MaxLevel]
The PutFiles(object,LocalPath,RemotePath,MaxLevel) syntax has these parts:
objectAn expression evaluating to an object of type wodSFTP.
LocalPathOptional. A Variant value. Holds full path on local disk from where files are uploaded.
RemotePathOptional. A Variant value. Holds full path on the server where files are uploaded.
MaxLevelOptional. A Variant value. Specifies maximum number of subdirectory levels to copy. 0 for unlimited.

Remarks

This method will try to upload local directory structure from local disk to the server. You need to specify LocalPath argument that points to a directory from where files are copied, and RemotePath that determines location where those files are placed on the server. PutFiles will go and recursive copy directories and files - corresponding directory structure will also be created on the server.

wodSFTP will go up to MaxLevel deep into recursion. Default value is 5 - meaning up to 5 subdirectory levels will be copied. You can specify any value for MaxLevel. If you specify 0, that means that no restriction exists for recursion depth.

Before each item is copied, LoopItem event will be fired, specifying local name of the file/folder, its remote name (including full path in both cases), type of the item (file/folder) and will allow you to Skip the item so it is not copied to the server at all. Make sure your logic for setting Skip = True is correct - if you skip creation of remote directory and then try to upload files to it, you may get more errors! Since PutFiles does not support wildcards (for example, you cannot specify "*.TXT" in PutFiles call), LoopItem is a place to determine if certain item matches your wildcard expression (if you have any), so you can skip files that doesn't match your criteria.

If an errors occurs during file upload, LoopError event is fired holding error number and error description of the error. If you leave ErrorCode argument in LoopError event as is - PutFiles operation will be aborted. If you change ErrorCode value in LoopError event to 0, then PutFiles operation will continue (ignoring the error) normally.

Please note that using PutFiles in blocking environment where events are not available is almost impossible to use - simply because first error that occurs may abort the operation, and there is no way to ignore the error (since you don't have access to LoopError event).

Do not forget that RemotePath should always specify full absolute path (i.e. /home/joe/something) instead of relative path (i.e. joe/something). LocalPath should also specify full path (i.e. C:\home\joe\something) instead of relative path (i.e. joe\something).

Platforms

Windows