-1

我正在尝试从我的 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);
    }
4

3 回答 3

1

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

于 2012-12-18T02:14:05.863 回答
1

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


以下行:

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

与这两个相同:

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

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

于 2012-12-18T02:14:50.823 回答
0

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

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

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

于 2012-12-18T21:54:25.347 回答