2012-12-18 410 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