0

SftpException: No such file; File not found.在使用 Rebex sftp's 时得到一个Sftp.DeleteFile(string filename),这特别奇怪,因为我首先检查文件是否存在。

这是相关的示例代码:

foreach (var file in fileList)
{
    if(ftp.Connection.FileExists(file.Name))
    {
        try
        {
            ftp.Connection.DeleteFile(file.Name);
        }
        catch (SftpException ex)
        {
            Log.Error("Deletion failed.", ex);
        }
    } 
    else
    {
         Log.Debug(string.Format("'{0}' not found.", file.Name));
    }
}

不熟悉该库的人可以在这里找到 Rebex 的在线文档。

关于这里发生了什么的任何想法?

4

1 回答 1

1

David 还在我们的支持论坛http://forum.rebex.net/questions/1635/sftpexception-no-such-file-file-not-found上提出了这个问题

我也在这里记录解决方案,因为它在类似情况下很方便。

  • 该文件确实存在于 SFTP 服务器上
  • 应用程序打开一个将文件锁定在服务器上的流
  • 该文件无法删除,服务器报告“No such file; File not found”。错误信息
  • 关闭这些流可以解决问题,现在可以删除文件。

不幸的是,SFTP 服务器错误消息在这种情况下并不是很有帮助。有人可能会问,“拒绝访问”之类的内容是否更合适。

于 2011-08-02T14:34:54.230 回答