Back to product page

LoopItem event


Fires before wodFtpDLX performs operation on file from the GetFiles/PutFiles/DeleteFiles/LoopFiles sequence.

Syntax

  • Basic
Private Sub object_LoopItem(LocalFile, RemoteFile, ItemType, Skip)
The LoopItem(object,LocalFile,RemoteFile,ItemType,Skip) syntax has these parts:
objectA wodFtpDLX object.
LocalFileA String value. Full path to file/folder on local disk.
RemoteFileA String value. Full path to file/folder on remote server.
ItemTypeA DirItemTypes enumeration, as described in settings. Type of the item - file, folder, symbolic link.
SkipA Boolean value. When set to True then intended operation is not performed on the item.

Remarks

Settings

The settings for ItemType are:

Constant Value Description
typeDirectory0 Item is directory.
typeSymlink 1 Item is symbolic link.
typeFile2 Item is file.
typeTemporary 3 Item is temporary file/folder.
typeUnknown4 Unknown item.


This event fires as result of GetFiles, DeleteFiles, PutFiles and LoopFiles methods. It provides information about each item in the sequence (meaning file or folder) before actual operation on that item is executed - allowing you to optionally Skip the operation for this particular item.

Since both LocalFile and RemoteFile arguments can be changed, you can also cause operation to be performed on completely different files than it would be in original operation.

For example, you can use LoopItem event like this:
 
Private Sub Ftp1_LoopItem(LocalFile As String, RemoteFile As String, ByVal ItemType As wodFtpDLXComLib.DirItemTypes, Skip As Boolean)
   If ItemType = typeDirectory Then
       Skip = False
   Else
        If Right$(RemoteFile, 4) = ".txt" Then
           Skip = False
        Else
           Skip = True
        End If
   End If
End Sub
 

which means that only files ending with ".txt" are copied - others are skipped (but directories are created, just in case).

You can also use it like this: we will copy all ".txt" files to the same directory, no matter where they originate from:
 
Private Sub Ftp1_LoopItem(LocalFile As String, RemoteFile As String, ByVal ItemType As wodFtpDLXComLib.DirItemTypes, Skip As Boolean)
   If Right$(RemoteFile, 4) = ".txt" Then
       LocalFile = "c:\mytxtfiles\file" & Counter & ".txt"
       Counter = Counter + 1
       Skip = False
   Else
       Skip = True
   End If
End Sub
 

above sample will not create directory structure at all - but still would copy all .txt files to differently named files on local disk.

NOTE: in some environments Skip argument cannot send value back to wodFtpDLX, such as in Delphi and BCB. For this purpose we have added also ItemSkip property that can be set to value True, producing same result as if Skip argument would be set to True.

Platforms

Windows