Я не могу удалить файл через FTP - PullRequest
0 голосов
/ 22 апреля 2020

Я пытаюсь удалить все файлы в папке через FTP. Ниже приведен код, который я пытаюсь.

Files - это массив строк, каждая из которых содержит имя файла в папке с его расширением.

Когда я запускаю его, я получаю ответ 206, но когда я смотрю в папку, все файлы остаются. Я попробовал варианты кода ниже, включая добавление задержки, но все еще не могу удалить файлы. Что я пропустил?

 foreach (var FileName2 in Files)
     {
       if (File.Exists(txtbx_save_backup_to.Text + "/" + FileName2))
                {
                    FtpWebRequest Delrequest = (FtpWebRequest)WebRequest.Create(ftp_address + "/Temp/Backup/" + FileName2);
                   Delrequest.Credentials = new NetworkCredential(username, password);
                   Delrequest.Method = WebRequestMethods.Ftp.DeleteFile;

                    Task.Delay(1000);

                    using (FtpWebResponse response2 = (FtpWebResponse)request.GetResponse())
                    {
                        rchtxtbx_backup_comms.AppendText("Deleted File, status " + response2.StatusDescription + "\r");
                        rchtxtbx_backup_comms.ScrollToCaret();
                    }
                }
            }

1 Ответ

0 голосов
/ 23 апреля 2020

Приведенные выше комментарии дали мне подсказку, в которой я нуждался окольным путем, так что спасибо вам за ответ.

Я пропустил часть для "действия" на запрос на удаление. Поэтому я добавил следующее, и теперь оно работает.

WebResponse GetResponse = Delrequest.GetResponse();
Stream GResponseStream = GetResponse.GetResponseStream();

Я удалил ожидание, и полный код теперь

foreach (var FileName2 in Files)
            {
                if (File.Exists(txtbx_save_backup_to.Text + "/" + FileName2))
                {
                    FtpWebRequest Delrequest = (FtpWebRequest)WebRequest.Create(ftp_address + "/Temp/Backup/" + FileName2);
                   Delrequest.Credentials = new NetworkCredential(username, password);
                   Delrequest.Method = WebRequestMethods.Ftp.DeleteFile;

                    //Action request
                    WebResponse GetResponse = Delrequest.GetResponse();
                    Stream GResponseStream = GetResponse.GetResponseStream();

                    using (FtpWebResponse response2 = (FtpWebResponse)request.GetResponse())
                    {
                        rchtxtbx_backup_comms.AppendText("Deleted File, status " + response2.StatusDescription + "\r");
                        rchtxtbx_backup_comms.ScrollToCaret();
                    }

                    GResponseStream.Close();
                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...