为什么FTP请求不允许“%20”?

时间:2015-12-16 17:25:09

标签: vb.net ftpwebrequest

我正在发出FTP请求,并且只要参数remoteFilePath包含带有“%20”的字符串,我就会收到无法找到该文件的错误。我怎么能绕过这个?

Dim remoteFileWriteTime As Date = Ftp.GetDateTimeStamp(remoteFilePath).ToLocalTime()

注意:我不负责命名文件,因为它不是我的服务器。

1 个答案:

答案 0 :(得分:0)

尝试使用以下方法对文件名进行编码:

Dim baseUri as String = "ftp://SomeFtpServer/"
Dim file as String = "Strangely%20Named%20File.pdf"
Dim myUri as String = baseUri & HttpUtility.UrlEncode(file)
Dim remoteFileWriteTime As Date = Ftp.GetDateTimeStamp(myUri).ToLocalTime()

如果HttpUtility未正确编码,您可能需要使用Uri.EscapeDataString进行编码。我不确定FTP究竟想要哪种编码方案。