【问题标题】:Deleting File On Ftp Server?删除 Ftp 服务器上的文件?
【发布时间】:2012-12-18 02:10:45
【问题描述】:

我正在尝试从我的 FTP 网站上删除一个文件,但我似乎无法让代码正常工作,有人可以帮忙吗?我没有收到任何错误,因为它什么也没做。

private FtpWebRequest deleteRequest(string uri, string method)
{
    var r = (FtpWebRequest)WebRequest.Create(uri);
    string Delete = WebRequestMethods.Ftp.DeleteFile;

    r.Credentials = new NetworkCredential(TxtUsername.Text, TxtPassword.Text);
    r.Method = Delete = listView1.SelectedItems.ToString();
    return r;
}

剩下的代码。

    private void openToolStripMenuItem_Click(object sender, EventArgs e)
    {
        textBox1.Text = TxtServer.Text + listView1.SelectedItems.ToString();
        deleteRequest(textBox1.Text, WebRequestMethods.Ftp.DeleteFile);
    }

【问题讨论】:

    标签: c# winforms ftp


    【解决方案1】:

    您必须致电r.GetResponse()。你真的不需要从你的方法返回你的请求。

    【讨论】:

      【解决方案2】:

      您正在用 ListView 中选择的任何内容覆盖“DELETE”方法。


      下面一行:

      r.Method = Delete = listView1.SelectedItems.ToString();
      

      这两个是一样的:

      Delete = listView1.SelectedItems.ToString();
      r.Method = Delete;
      

      这样Delete 首先获取SelectedItems 中的任何值,然后将该值用作Method。这可能不是你的想法。

      【讨论】:

      • 我建议你自己写一段代码,除了删除文件什么都不做。忘记文本框和列表视图之类的东西。只需编写要删除的代码。构建请求后,您需要致电 r.GetResponse()。实际发出请求的是GetResponse
      • 我现在开始工作了 :) 谢谢我用我的解决方案回答我自己的问题
      【解决方案3】:

      这是我最终使用的代码,谢谢大家的帮助,非常感谢。

      private void deleteToolStripMenuItem_Click(object sender, EventArgs e)
          {
              ResultLabel.Text = "Deleting: " + listView1.SelectedItems[0].Text;
              ResultLabel.Show();
              this.Refresh();
              textBox1.Text = TxtServer.Text + listView1.SelectedItems[0].Text;
              FtpWebRequest request = (FtpWebRequest)WebRequest.Create(textBox1.Text);
              request.Method = WebRequestMethods.Ftp.DeleteFile;
      
              request.Credentials = new NetworkCredential(TxtUsername.Text, TxtPassword.Text);
              FtpWebResponse response = (FtpWebResponse)request.GetResponse();
              ResultLabel.Text = "Deleted: " + listView1.SelectedItems[0].Text;
              response.Close();
          }
      

      我刚刚完全重写了代码并再次尝试,它成功了。

      【讨论】:

        最近更新 更多