# Ftp 访问中文路径无法获取文件 但是若根目录为英文,则内层无论为英文还是中文,都可以访问。
代码如下:
Stream responseStream = null;
FileStream fileStream = null;
FtpWebResponse downloadResponse = null;
try
{
FtpWebRequest downloadRequest =
(FtpWebRequest)WebRequest.Create(downloadUrl);
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;
NetworkCredential nc = new NetworkCredential();
nc.UserName = userName;
nc.Password = password; downloadRequest.Credentials = nc; //修改getCredential();错误2
downloadRequest.UseBinary = true;
downloadRequest.KeepAlive = false;
responseStream = downloadRequest.GetResponse().GetResponseStream();
fileStream = File.Open(fileName, FileMode.Create); byte[] buffer = new byte[2048];
int bytesRead;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, 1024);
if (bytesRead == 0)
break;
fileStream.Write(buffer, 0, bytesRead);
}
responseStream.Close(); downloadResponse = (FtpWebResponse)downloadRequest.GetResponse();
if (downloadResponse.StatusCode == FtpStatusCode.ClosingData)
{
strResult = "下载成功,文件:" + fileName;
return 0;
}
else
{
strResult = "下载文件失败,code=" + downloadResponse.StatusCode.ToString();
} }
catch (UriFormatException ex)
{
strResult = ex.Message;
}
catch (IOException ex)
{
strResult = ex.Message;
}
catch (WebException ex)
{
strResult = ex.Message;
}
finally
{
if (downloadResponse != null)
downloadResponse.Close();
if (fileStream != null)
fileStream.Close();
if (responseStream != null)
responseStream.Close();
}
代码如下:
Stream responseStream = null;
FileStream fileStream = null;
FtpWebResponse downloadResponse = null;
try
{
FtpWebRequest downloadRequest =
(FtpWebRequest)WebRequest.Create(downloadUrl);
downloadRequest.Method = WebRequestMethods.Ftp.DownloadFile;
NetworkCredential nc = new NetworkCredential();
nc.UserName = userName;
nc.Password = password; downloadRequest.Credentials = nc; //修改getCredential();错误2
downloadRequest.UseBinary = true;
downloadRequest.KeepAlive = false;
responseStream = downloadRequest.GetResponse().GetResponseStream();
fileStream = File.Open(fileName, FileMode.Create); byte[] buffer = new byte[2048];
int bytesRead;
while (true)
{
bytesRead = responseStream.Read(buffer, 0, 1024);
if (bytesRead == 0)
break;
fileStream.Write(buffer, 0, bytesRead);
}
responseStream.Close(); downloadResponse = (FtpWebResponse)downloadRequest.GetResponse();
if (downloadResponse.StatusCode == FtpStatusCode.ClosingData)
{
strResult = "下载成功,文件:" + fileName;
return 0;
}
else
{
strResult = "下载文件失败,code=" + downloadResponse.StatusCode.ToString();
} }
catch (UriFormatException ex)
{
strResult = ex.Message;
}
catch (IOException ex)
{
strResult = ex.Message;
}
catch (WebException ex)
{
strResult = ex.Message;
}
finally
{
if (downloadResponse != null)
downloadResponse.Close();
if (fileStream != null)
fileStream.Close();
if (responseStream != null)
responseStream.Close();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货