2012-12-18 448 views
-1

我想从我的FTP网站删除一个文件,但我似乎无法获得代码工作,任何人都可以帮忙吗?,我没有错误,它只是没有做任何事情。删除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); 
    } 

回答

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

我只是完全重写了代码,并试图再次和它的工作。

1

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

1

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


以下行:

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

是一样的这两个:

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

这样Delete首先获得的无论是在你的SelectedItems的值,然后使用该值为Method。这可能不是你想到的。

+1

我建议你自己写一段代码,除了删除文件外什么也不做。忘记文本框和列表视图以及类似的东西。只需编写要删除的代码即可。构建请求后,您需要调用'r.GetResponse()'。它是实际发出请求的'GetResponse'。 –

+0

我得到它现在的工作:)感谢病回答我自己的问题与我的解决方案 – Terrii