List files with specific extension using WinSCP .NET assembly

c#, directory-listing, sftp, winscp, winscp-net

Solution

Use the `Session.ListDirectories` method:

RemoteDirectoryInfo directory = session.ListDirectory("/home/martin");

foreach (RemoteFileInfo fileInfo in directory.Files)
{
    string extension = Path.GetExtension(fileInfo.Name);
    if (string.Compare(extension, ".txt", true) == 0)
    {
        Console.WriteLine("Adding {0} to listing", fileInfo.Name);
    }
}

Or the `Session.EnumerateRemoteFiles` method:

IEnumerable<RemoteFileInfo> fileInfos =
    session.EnumerateRemoteFiles("/home/martin", "*.txt", EnumerationOptions.None);
foreach (RemoteFileInfo fileInfo in fileInfos)
{
    Console.WriteLine("Adding {0} to listing", fileInfo.Name);
}

Problem

I am using WinSCP .NET assembly to do a download and upload through SFTP with C# .NET. I have the download function working but I am looking for a way to have the files in the remote server listed (or at least listed with a specific extension) so user only have to choose from those files with the specific extension (like `.txt`) to get the files they want. Is there a way to do that with WinSCP .NET assembly?

Original source