【发布时间】:2015-01-14 04:22:48
【问题描述】:
我必须使用 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的属性值是正确的...不是编码的
谢谢
【问题讨论】:
标签: c# encoding ssh sftp ssh.net