Reputation: 23
What is the C# code to check if any .xls
files are in a remote SFTP folder using WinSCP .NET assembly? The xls
files have different names, I only know the files I want will have am xls
file extension.
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();
}
}
Upvotes: 2
Views: 1733
Reputation: 202232
As suggested by WinSCP article on Checking file existence, use Session.EnumerateRemoteFiles
to check, if any file matching a mask exists on am SFTP server:
bool anyXmlExists =
session.EnumerateRemoteFiles("/folder", "*.xml", EnumerationOptions.None).Any();
Upvotes: 1