0

Rebex SftpException: No such file; File not found.sftp の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 サーバー上に存在します
  • アプリケーションは、サーバー上のファイルをロックするストリームを開きます
  • ファイルを削除できず、サーバーは「そのようなファイルはありません。ファイルが見つかりません」と報告します。エラーメッセージ
  • これらのストリームを閉じると問題が解決し、ファイルを削除できるようになります。

残念ながら、この場合、SFTP サーバーのエラー メッセージはあまり役に立ちませんでした。「アクセスが拒否されました」のようなものがより適切ではないかどうかを尋ねることができます。

于 2011-08-02T14:34:54.230 に答える