C# 删除Ftp服务器上的文件?

C# 删除Ftp服务器上的文件?,c#,winforms,ftp,C#,Winforms,Ftp,我试图从我的FTP网站上删除一个文件,但我似乎无法使代码正常工作。有人能帮我吗?我没有收到错误,它只是不起任何作用 private FtpWebRequest deleteRequest(string uri, string method) { var r = (FtpWebRequest)WebRequest.Create(uri); string Delete = WebRequestMethods.Ftp.DeleteFile; r.Credentials = n

我试图从我的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);
    }

您必须调用
r.GetResponse()
。您确实不需要从方法返回请求。

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


以下一行:

r.Method = Delete = listView1.SelectedItems.ToString();
与这两个相同:

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

因此,
Delete
首先获取
SelectedItems
中任何内容的值,然后将该值用作
方法。这可能不是您的想法。

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

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();
    }

我只是完全重写了代码,然后再试了一次,结果成功了。

我建议您自己编写一段代码,除了删除文件外,什么都不做。忘掉文本框和列表视图之类的东西吧。只需编写要删除的代码。生成请求后,需要调用
r.GetResponse()
。实际发出请求的是
GetResponse
。我现在让它工作了:)谢谢。我会用我的解决方案回答我自己的问题