检查SFTP远程服务器上是否存在文件

时间:2012-06-09 16:11:21

标签: c# sftp sharpssh

以下代码会将名为file.txt的文件从SFTP remote server下移到local machine

 sftp.Get("/usr/mine/file.txt" , "C:/Folder/");

我想要做的是检查文件file.txt是否存在于remote server中。我怎么做这个检查。帮助

我正在使用SharpSSH

3 个答案:

答案 0 :(得分:4)

您可以考虑采取小命中并尝试下载该文件。如果它不存在,则应抛出异常,您可以捕获它并继续前进。检查文件是否存在是一种不稳定的情况,因此在大多数情况下最好尝试执行操作。

答案 1 :(得分:1)

这应该可以解决问题。

 using (var sftp = new SftpClient(host, username, password))
        {
            try
            {

                sftp.Connect();
                MessageBox.Show(sftp.Exists(remoteDirectory).ToString());
            }
            catch (Exception Sftpex)
            {
                MessageBox.Show(Sftpex.ToString());
            }
        }

答案 2 :(得分:0)

我这样做是通过使用.GetFileList并将值读入ArrayList然后循环每个值,将文件名添加到列表框中。然后,我在列表框中检查我的输入文件,看它是否存在。下面的示例代码将.GetFileList值添加到ArrayList中,然后添加到列表框中。

BTW - 这是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