我必须使用 SSH.NET 库下载文件。下载文件后,我必须删除远程文件。一切正常,但文件名已编码。我的意思是,例如,如果我有一个名为 的文件New file
,我会下载/上传一个名为New%20file
. 现在,如果我下载/上传我获得的新文件New%25%20file
并再次New%252520file
......等等......这是非常有问题的。下载后如何避免更改文件名?
这是我用来下载的代码:
string fileName = base.Uri.GetFileName();
string fullPath = Path.Combine(pathFolder, fileName);
using (SftpClient client = new SftpClient(
new PasswordConnectionInfo(
base.Uri.Host, SftpFlowGateway.CONST_PORT_NUMBER,
base.Credential.UserName,
base.Credential.Password))
)
{
client.Connect();
using (FileStream fileStreamToDownload = new FileStream(fullPath, FileMode.Create))
{
client.DownloadFile(base.Uri.LocalPath, fileStreamToDownload);
}
client.Disconnect();
}
编辑:
base.Uri
只是定义如下:
private Uri _uri;
public Uri Uri
{
get { return _uri; }
protected set { _uri = value; }
}
GetFileName 方法是:
public static string GetFileName(this Uri path)
{
return path.Segments.Last();
}
当我调试时,我可以看到类 Uri 的属性具有正确的值......它没有编码
谢谢