Back to product page

DeleteFiles function


Deletes multiple files in a sequence, recursive.

Type

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

Syntax

  • C
long Sftp_DeleteFiles(void *Sftp, char * RemotePath, int MaxLevel);
The DeleteFiles(void *Sftp,char *RemotePath,int MaxLevel) syntax has these parts:
void *SftpHandle of the created Sftp instance.
char *RemotePathHolds full path on the server from where files/folders are deleted.
int MaxLevelSpecifies 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, LoopItem callback 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).

Platforms

Windows