C#绝对URI从URL中删除“..”

前端之家收集整理的这篇文章主要介绍了C#绝对URI从URL中删除“..”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我必须通过FTP上传文件ftp://ftp.remoteServer.com

我在remoteServer上的根目录包含一个“上传”和一个“下载”文件夹.我需要将我的文件放在“上传”目录中.但在登录时,服务器会自动将我放入“下载”文件夹中.

我试过这样做:

string serverTarget = "ftp://ftp.remoteServer.com/";
serverTarget += "../upload/myfile.txt";
Uri target = new Uri(serverTarget);
FTPWebRequest ftp = (FTPWebRequest)FtpWebRequest.Create(target);

using(Stream requestStream = ftp.GetRequestStream()) {
    // Do upload here
}

代码失败:(550)文件不可用(例如,找不到文件,没有访问权限)
我调试了代码,target.AbsoluteUri返回ftp://ftp.remoteServer.com/upload而不是ftp://ftp.remoteServer.com/../upload(缺少..)

如果我将ftp://ftp.remoteServer.com/../upload放入浏览器,我可以登录并验证这是我想要放置文件的正确位置.

如何让FTPWebRequest转到正确的位置?

解决方法

我相信你可以将点编码为.保留URI中的点.

所以类似于:

string serverTarget = "ftp://ftp.remoteServer.com/%2E%2E/upload/myfile.txt";
原文链接:https://www.f2er.com/csharp/99989.html

猜你在找的C#相关文章