2012-09-25 51 views
0

我的項目中有一些問題。我想使用代理從ftp中刪除我的文件。如何使用c#中的代理從FTP中刪除文件#

我的代碼是:

   FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + FtpServerName + FtpFilePath); 
       request.Method = WebRequestMethods.Ftp.DeleteFile; 


       request.Proxy = new WebProxy(ProxyAddress); 
       request.Proxy.Credentials = new NetworkCredential(ProxyUserName,  ProxyPassword); 

       request.Credentials = new NetworkCredential(FTPUserName, FTPPassword); 
       FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

在此我得到錯誤,如: 請求的FTP命令是使用HTTP代理時,不支持

任何一個可以請幫我

在此先感謝

+0

請儘可能儘快回覆。它非常緊迫。 –

+0

您的代碼在啓動代理之前顯示文件刪除嘗試。也許你會告訴給我們工作代碼,顯示你可以連接代理和查看文件,並檢查你想要的文件,然後再嘗試刪除它 – BugFinder

+0

我也試過這個選項。但是我仍然得到相同的錯誤 –

回答

1

http://blogs.msdn.com/b/adarshk/archive/2004/09/13/229069.aspx

有關在FTPWebRequest上使用Http代理的注意事項:僅有限數量的ftp方法(主要用於下載文件)支持Http代理,因此如果您的計算機上的代理服務器具有IE設置,則需要將FtpWebRequest明確設置爲不使用代理如下

request.Proxy = GlobalProxySelection.GetEmptyWebProxy();

如果您想通過代理執行其他FTP操作,您必須找到另一個支持它的FTP組件。

0

而不是request.Proxy = GlobalProxySelection.GetEmptyWebProxy();

嘗試request.Proxy = WebRequest.DefaultWebProxy;

遵循我正常工作的演示代碼:

var request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://99.999.99.99/TextFile1.txt")); 
request.Method = WebRequestMethods.Ftp.UploadFile; 
request.Credentials = new NetworkCredential("ftp_user", "ftp_pass"); // it's FTP credentials, not proxy 
request.Proxy = WebRequest.DefaultWebProxy; 

var sourceStream = new StreamReader("TextFile1.txt"); 
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd()); 
sourceStream.Close(); 
request.ContentLength = fileContents.Length; 

Stream requestStream = request.GetRequestStream(); 
requestStream.Write(fileContents, 0, fileContents.Length); 
requestStream.Close(); 

var response = (FtpWebResponse)request.GetResponse(); 
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription); 
response.Close(); 
相關問題