2011-06-14 62 views
3

文件我的代碼:試圖FTP以特殊字符

FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(url); 
request.Method = WebRequestMethods.Ftp.DownloadFile; 
request.UseBinary = true; // Binary mode when downloading 
request.Credentials = new NetworkCredential(user, password); 
FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

我總是得到錯誤:「請求的URI是這個FTP命令無效」。

問題是url包含一個「#」。既然我不能阻止人們創建這種類型的文件,是否有辦法逃避特殊字符並仍然處理文件?

+0

你能提供一個樣本網址嗎? – marto 2011-06-14 21:19:30

+0

你能舉一個例子url嗎? – 2011-06-14 21:19:49

回答

4

做一個字符串"#" ->"%23"
URL編碼替換不應包含哈希因爲:

Some characters present the possibility of being misunderstood within URLs for various reasons. These characters should also always be encoded.

+0

感謝讓伯納德。我感覺好多了 - 聽起來好像有一個解決方案。有些人問上面的例子,想象一下文件名是「#test.txt」。有沒有人有一個字符的列表,我需要逃脫?在此先感謝 – 2011-06-14 21:27:27

+0

http://www.blooberry.com/indexdot/html/topics/urlencoding.htm 但是,你應該看看由B泰勒公佈的函數,它可能正是你想要的,而不用擔心哪些字符。 – 2011-06-14 21:29:27

+0

B Tyler功能在哪裏? – 2011-06-14 21:33:51