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

问题描述 投票:0回答:3

以下代码会将名为

file.txt
的文件从
SFTP remote server
下放到
local machine

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

我想做的是检查文件

file.txt
是否存在于
remote server
中。我该如何进行这项检查。帮助

我正在使用

SharpSSH

c# sftp sharpssh
3个回答
4
投票

这应该可以解决问题。

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

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

3
投票

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


0
投票

我通过使用 .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
© www.soinside.com 2019 - 2024. All rights reserved.