C#下载ftp文件时文件名里含有特殊字符的处理方法 100

我创建了一个method来与ftpserver进行交流。现在的问题是uri里面带有特殊字符如“#”,“@”等就无法下载或者上传。只好用蹩脚的方式escape了一下。有没有... 我创建了一个method来与ftp server 进行交流。现在的问题是uri里面带有特殊字符如“#”,“@”等就无法下载或者上传。只好用蹩脚的方式escape了一下。 有没有比较优雅的方式escape特殊字符在uri里?

// Get the request using a specific URI
static public FtpWebRequest GetWebRequest(string method, string uri)
{
Uri serverUri = new Uri(uri);

if (serverUri.ToString().Contains("#"))
{
serverUri = new Uri(serverUri.ToString().Replace("#", Uri.HexEscape('#')));
}
Console.WriteLine(serverUri.ToString());
if (serverUri.Scheme != Uri.UriSchemeFtp)
{
return null;
}
try
{
var reqFTP = (FtpWebRequest)FtpWebRequest.Create(serverUri);
reqFTP.Method = method;
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(userId, password);
reqFTP.Proxy = null;
reqFTP.KeepAlive = false;
reqFTP.UsePassive = false;
return reqFTP;
}
catch (Exception ex)
{
logWriter.WriteLog("Get Web Request: ", "Cannot connect to " + uri + "\n" + "Error: " + ex.Message);
return null;
}
}

var request = GetWebRequest(WebRequestMethods.Ftp.UploadFile, "ftp://" + ip + @"/" + remoteDir + @"/" + destDir + @"/" + file.Name);
展开
 我来答
匿名用户
2013-07-24
展开全部

So it is probably just ANSI encoding, so try

var secureString = new SecureString();
            foreach (var b in Encoding.Default.GetBytes("C# test's file"))
                secureString.AppendChar((char)b);
            var stringResult = string.Empty;
            IntPtr bstr = Marshal.SecureStringToBSTR(secureString);
            try
            {
                stringResult =Marshal.PtrToStringBSTR(bstr);
            }
            finally
            {
                Marshal.FreeBSTR(bstr);
            }
            return stringResult;
Jarhf
2013-07-24 · TA获得超过1862个赞
知道小有建树答主
回答量:1736
采纳率:25%
帮助的人:1033万
展开全部
System.Web.HttpUtility.UrlEncode("你的uri")
需要添加System.Web.dll引用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式