有一天,FileZilla决定不让我下载。 (右键单击,“下载”是灰色的),所以我下载了SmartFTP,但我真的不喜欢它。
所以我问自己,为什么不做一个?所以,我已经半工作了(可以连接到ftp服务器,下载,上传,进出文件夹,创建目录),但是,它无法打开带有重音和/或特殊字符的文件夹( á,é,ö,#等等,它们也出现在列表框中:“Adatb?ziskezel?s”,而windows中的内置内容则显示如下:“Adatbáziskezelés”。
我能做些什么才能让它发挥作用?
public string[] OpenFolder(string foldername)
{
byte[] bytes = Encoding.Default.GetBytes(foldername);
foldername = Encoding.UTF8.GetString(bytes);
string[] downloadFiles;
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try
{
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(
"ftp://" + IP + "/"+foldername+"/"));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(username,
password);
reqFTP.Method = WebRequestMethods.Ftp.ListDirectory;
WebResponse response = reqFTP.GetResponse();
StreamReader reader = new StreamReader(response
.GetResponseStream());
string line = reader.ReadLine();
while (line != null)
{
result.Append(line);
result.Append("\n");
line = reader.ReadLine();
}
result.Remove(result.ToString().LastIndexOf('\n'), 1);
reader.Close();
response.Close();
return result.ToString().Split('\n');
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
downloadFiles = null;
return downloadFiles;
}
}
答案 0 :(得分:0)
if (line.Contains("#"))
{
line = line.Replace("#", Uri.HexEscape('#'));
}
依此类推......