wodSFTP API library - DeleteFiles Method
      
 

Description

Deletes multiple files in a sequence, recursive.


Return type

A Long value. If successful, 0 is returned, otherwise error as specified here


Syntax

long Sftp_DeleteFiles(void *Sftp, char * RemotePath, int MaxLevel);

The DeleteFiles function syntax has these parts:

Part Description
void *Sftp Handle of the created Sftp instance.
char *RemotePath Holds full path on the server from where files/folders are deleted.
int MaxLevel Specifies maximum number of subdirectory levels to delete. 0 for unlimited.

Remarks

This function 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, LoopItemcallback will be called, 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 callback is called holding error number and error description of the error. If you leave ErrorCode argument in LoopError callback as is - DeleteFiles operation will be aborted. If you change ErrorCode value in LoopError callback to 0, then DeleteFiles operation will continue (ignoring the error) normally.

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