# 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();
            }