Проблемы с удалением rebex sftp файла - PullRequest
0 голосов
/ 28 июля 2011

Я получаю SftpException: No such file; File not found. при использовании Rebex 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 можно найти здесь для тех, кто не знаком с библиотекой.

Есть какие-нибудь идеи относительно того, что здесь происходит?

1 Ответ

1 голос
/ 02 августа 2011

Дэвид также задавал этот вопрос на нашем форуме поддержки по адресу http://forum.rebex.net/questions/1635/sftpexception-no-such-file-file-not-found

Я также записываю решение здесь, потому что оно может пригодиться в подобных ситуациях.

  • Файл существует на SFTP-сервере
  • Приложение открывает поток, который блокирует файл на сервере
  • Файл не может быть удален, и сервер сообщает «Нет такого файла; файл не найден». сообщение об ошибке
  • Закрытие этих потоков решает проблему, и теперь файл можно удалить.

К сожалению, сообщение об ошибке SFTP-сервера не очень помогло в этом случае. Можно спросить, не будет ли что-то вроде «отказано в доступе» более уместным.

...