使用WinSCP .NET程序集检查SFTP服务器上是否存在任何带扩展名的文件

问题描述 投票:2回答:1

使用WinSCP .NET程序集检查是否有任何.xls文件位于远程SFTP文件夹中的C#代码是什么? xls文件有不同的名称,我只知道我想要的文件将是xls文件扩展名。

string strFileRemote = @"/folder/*.xls";
// Set up session options
SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = sftpHost,
    UserName = sftpUsername,
    SshHostKeyFingerprint = "value for finger print",
    SshPrivateKeyPath = @"\\file server\.ppk",
};

using (Session session = new Session())
{
    // Connect
    session.Open(sessionOptions);

    // Upload files
    TransferOptions transferOptions = new TransferOptions();
    transferOptions.TransferMode = TransferMode.Binary;

    TransferOperationResult transferResult;
    // Download
    transferResult =
        session.GetFiles(strFileRemote, strFileLocal, false, transferOptions);

    // Throw on any error
    transferResult.Check();
    if (transferResult.IsSuccess == false)
    {
        strStatus = "Error: " + transferResult.ToString();
    }
}
c# .net sftp winscp winscp-net
1个回答
1
投票

正如WinSCP article on Checking file existence所建议的,如果在SFTP服务器上存在与掩码匹配的文件,请使用Session.EnumerateRemoteFiles进行检查:

bool anyXmlExists =
    session.EnumerateRemoteFiles("/folder", "*.xml", EnumerationOptions.None).Any();
© www.soinside.com 2019 - 2024. All rights reserved.