博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从FTP上下载文件到本地
阅读量:6867 次
发布时间:2019-06-26

本文共 3143 字,大约阅读时间需要 10 分钟。

#region 下载文件        ///         /// 从FTP服务器下载文件,指定本地路径和本地文件名,20120817,ylh        ///         ///  要下载文件所在ftp上的完整路径,如ftp://192.168.0.111/2012-08-17/yinluhui.xml        /// 要下载文件的文件名,如yinluhui.xml        /// 本地路径,如D:\ftp临时文件\20120817        public bool DownFtpToLocation(String ftpPath, String ftpFile, String LocalPath)        {            byte[] bt = null;            try            {                //if (!IsValidFileChars(RemoteFileName) || !IsValidFileChars(LocalFileName) || !IsValidPathChars(LocalPath))                //{                //    throw new Exception("非法文件名或目录名!");                //}                if (Directory.Exists(LocalPath) == false)                {                    Directory.CreateDirectory(LocalPath);                }                string LocalFullPath = Path.Combine(LocalPath, ftpFile);                //if (File.Exists(LocalFullPath))                //{                //    throw new Exception("当前路径下已经存在同名文件!");                //}                bt = DownloadFile(ftpPath, LocalPath);                if (bt != null)                {                    FileStream stream = new FileStream(LocalFullPath, FileMode.Create);                    stream.Write(bt, 0, bt.Length);                    stream.Flush();                    stream.Close();                    return true;                }                else                {                    return false;                }            }            catch (Exception ep)            {                //ErrorMsg = ep.ToString();                throw ep;            }        }        ///         /// 从FTP服务器下载文件,返回文件二进制数据        ///         public byte[] DownloadFile(String ftpPath, String LocalPath)        {            try            {                //if (!IsValidFileChars(RemoteFileName))                //{                //    throw new Exception("非法文件名或目录名!");                //}                FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpPath);                ftpRequest.Credentials = new NetworkCredential(_account, _pwd);//登陆ftp的用户名,密码                ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;                FtpWebResponse Response = (FtpWebResponse)ftpRequest.GetResponse();                Stream Reader = Response.GetResponseStream();                MemoryStream mem = new MemoryStream(1024 * 500);                byte[] buffer = new byte[1024];                int bytesRead = 0;                int TotalByteRead = 0;                while (true)                {                    bytesRead = Reader.Read(buffer, 0, buffer.Length);                    TotalByteRead += bytesRead;                    if (bytesRead == 0)                        break;                    mem.Write(buffer, 0, bytesRead);                }                if (mem.Length > 0)                {                    return mem.ToArray();                }                else                {                    return null;                }            }            catch (Exception ep)            {                throw ep;            }        }        #endregion

 

转载于:https://www.cnblogs.com/yinluhui0229/archive/2012/08/17/2643686.html

你可能感兴趣的文章
今天的学习
查看>>
Makefile有三个非常有用的变量。分别是$@,$^,$
查看>>
网络大厂和以色列研究团运用ML打造洪水预测模型
查看>>
Dart | 浅析dart中库的导入与拆分
查看>>
FFMpeg编程1 环境搭建
查看>>
SpringBoot | 第十八章:web应用开发之WebJars使用
查看>>
Web开发:我希望得到的编程学习路线图
查看>>
Hadoop Outline Part 3 (I/O - Avro)
查看>>
Ubuntu16.04下查看软件版本及安装位置
查看>>
hibernate的查询缓存 (转)
查看>>
Zend Framework 2 中,定制error 的layout
查看>>
避免linux并发导致的竞态发生
查看>>
Python学习--xml-ElementTree
查看>>
free、ps、netstat、tcpdump命令工具介绍
查看>>
正则取ip地址
查看>>
Windows不能确定用户或计算机名称(RPC服务器不可用)。组策略处理中止
查看>>
struts2.3.20中action中的validate校验
查看>>
java使用之json在前端和后台之间的转换
查看>>
vsftpd.conf全部配置参数官网详细说明
查看>>
强制取消横屏
查看>>