以下代码会将名为
file.txt
的文件从 SFTP remote server
下放到 local machine
。
sftp.Get("/usr/mine/file.txt" , "C:/Folder/");
我想做的是检查文件
file.txt
是否存在于remote server
中。我该如何进行这项检查。帮助
我正在使用
SharpSSH
这应该可以解决问题。
using (var sftp = new SftpClient(host, username, password))
{
try
{
sftp.Connect();
MessageBox.Show(sftp.Exists(remoteDirectory).ToString());
}
catch (Exception Sftpex)
{
MessageBox.Show(Sftpex.ToString());
}
}
您可以考虑只接受一次小打击并尝试下载该文件。如果它不存在,则应抛出异常,您可以捕获它并继续。检查文件是否存在是一种不稳定的情况,因此在大多数情况下,最好尝试执行您的操作。
我通过使用 .GetFileList 并将值读入 ArrayList,然后循环遍历每个值,将文件名添加到列表框来完成此操作。然后,我对照列表框检查输入文件,看看它是否存在。下面的示例代码将 .GetFileList 值添加到 ArrayList 中,然后添加到列表框中。
顺便说一句 - 这是 VB.NET :)
Dim InputFileList As ArrayList = oSftp.GetFileList(frmOptions.tbFTPInboundFolder.Text)
For Each f In InputFileList
If f.ToString() <> "." AndAlso f.ToString <> ".." Then
frmMain.lbFTPInputDirectory.Items.Add(f)
End If
Next