ftp下载带有中文文件名的问题

liubin8582 发布于 2011/07/27 17:21
阅读 3K+
收藏 0
FTP
大家好,请教各位一个问题,我就是下载带有中文文件名的文件下载不了,不知道在哪指定字符集,我知道在streamReader,streamWriter,可以设置读取字符的字符集。请教各位,该如果修改我如下的代码呢?
  public bool Download(string localPath, string fileName) 
        {
            try
            {
                String onlyFileName = Path.GetFileName(fileName);
                string newFileName = localPath + "\\" + onlyFileName;
                if (File.Exists(newFileName))
                {
                    //errorinfo = string.Format("本地文件{0}已存在,无法下载", newFileName);
                    return false;
                }
                string url = ftpServerIP + "/" + fileName;
                Connect(url);//连接  
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.UseBinary = true;

                FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                Stream ftpStream = response.GetResponseStream();
                //StreamReader sr = new StreamReader(ftpStream);
                long cl = response.ContentLength;
                int bufferSize = 2048;
                int readCount;
                byte[] buffer = new byte[bufferSize];
                
                //byte[] buffer = Encoding.GetEncoding("gb2312").GetBytes(bufferSize);
                readCount = ftpStream.Read(buffer, 0, bufferSize);
               
                FileStream outputStream = new FileStream(newFileName, FileMode.Create,FileAccess.Write);
                //StreamWriter sw = new StreamWriter(outputStream);
                while (readCount > 0)
                {
                    outputStream.Write(buffer, 0, readCount);
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                }
                ftpStream.Close();
                outputStream.Close();
                response.Close();
                return true;
            }
            catch (Exception ex)
            {
                //errorinfo = string.Format("因{0},无法下载", ex.Message);
                return false;
            }
        }
加载中
返回顶部
顶部