Description
-
Delete multiple files in a sequence, recursive.
Return Type
-
None
Syntax
-
object.DeleteFiles
[RemotePath], [MaxLevel]
The DeleteFiles Method syntax has these parts:
| object |
An expression
evaluating to an object of type wodSFTP. |
|
RemotePath |
Optional. A Variant value.
Holds full path on the server from where files/folders are
deleted. |
|
MaxLevel |
Optional. A Variant value.
Specifies maximum number of subdirectory levels to delete. 0 for
unlimited. |
Remarks
-
This method will try to delete complete directory structure on
the server. You need to specify RemotePath
that determines location from where files and directories are
deleted.
wodSFTP will go up to MaxLevel deep
into recursion. Default value is 5 - meaning up to 5 subdirectory
levels will be deleted. You can specify any value for
MaxLevel. If you specify 0, that means
that no restriction exists for recursion depth - this is dangerous
setting that could cause infinite loops to be created if remote
system has symbolic links pointing back to parent folders on remote
system!
Before each item is deleted,
LoopItem event
will be fired, specifying remote file/folder name (including full
path), type of the item (file/folder/symbolic link) and will allow
you to Skip the item so it is not
deleted at all. Make sure your logic for setting
Skip = True is correct - if you
skip deletion of the file and then try to delete it's parent
directory, more errors can occur. Since DeleteFiles does not support
wildcards (for example, you cannot specify "*.TXT" in DeleteFiles
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 deletion,
LoopError event
is fired holding error number and error description of the error. If
you leave ErrorCode argument in
LoopError event as is - DeleteFiles operation will be aborted. If
you change ErrorCode value in LoopError
event to 0, then DeleteFiles operation will continue (ignoring the
error) normally.
Please note that using DeleteFiles 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).
|