使用 WinSCP .NET 程序集列出具有特定扩展名的文件

Mah*_*hsa 3 c# sftp winscp directory-listing winscp-net

我正在使用 WinSCP .NET 程序集通过 C# .NET 通过 SFTP 进行下载和上传。我可以使用下载功能,但我正在寻找一种方法来列出远程服务器中的文件(或至少列出特定扩展名),因此用户只需从具有特定扩展名(例如 )的文件中进行选择即可.txt获取他们想要的文件。

有没有办法用 WinSCP .NET 程序集来做到这一点?

Mar*_*ryl 5

使用Session.ListDirectories方法

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

或者Session.EnumerateRemoteFiles方法

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