Fires before wodSFTP.NET performs operation on file from the GetFiles/PutFiles/DeleteFiles/LoopFiles sequence.
[Visual Basic]
Public LoopItemEvent As WeOnlyDo.Client.SFTP.LoopDelegate
[C#]
public LoopDelegate LoopItemEvent;
Remarks
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 void sftp1_LoopItemEvent(object Sender,
WeOnlyDo.Client.SFTP.LoopArgs Args)
{
if (Args.ItemType == WeOnlyDo.Client.SFTP.DirItemTypes.Directory)
Args.Skip = false;
else
if (Args.LocalFile.EndsWith(".txt"))
Args.Skip = false;
else
Args.Skip = true;
}
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 void sftp1_LoopItemEvent(object Sender, WeOnlyDo.Client.SFTP.LoopArgs Args)
{
if (Args.LocalFile.EndsWith(".txt"))
{
Args.LocalFile = @"c:\mytxtfiles\file" + mycounter.ToString();
mycounter++;
Args.Skip = false;
}
else
Args.Skip = true;
}
above sample will not create directory structure at all - but still would
copy all .txt files to differently named files on local disk.