zoukankan      html  css  js  c++  java
  • C# FTP上传与下载文件

    public class UploadFile
        {
            string ftpServerIP;
            string ftpRemotePath;
            string ftpUserID;
            string ftpPassword;
            string ftpURI;
            /// <summary>
            /// 连接FTP
            /// </summary>
            /// <param name="FtpServerIP">FTP连接地址</param>
            /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>
            /// <param name="FtpUserID">用户名</param>
            /// <param name="FtpPassword">密码</param>
            public UploadFile(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword)
            {
                ftpServerIP = FtpServerIP;
                ftpRemotePath = FtpRemotePath;
                ftpUserID = FtpUserID;
                ftpPassword = FtpPassword;
                ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/";
            }
            /// <summary>
            /// 上传
            /// </summary>
            /// <param name="filename"></param>
            public void Upload(string filename)
            {
                log4net.ILog log = log4net.LogManager.GetLogger(typeof(UploadFile));
                FileInfo fileInf = new FileInfo(filename);
                string uri = ftpURI + fileInf.Name;
                FtpWebRequest reqFTP;
                reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri));
                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
                reqFTP.KeepAlive = false;
                reqFTP.Method = WebRequestMethods.Ftp.UploadFile;
                reqFTP.UseBinary = true;
                reqFTP.ContentLength = fileInf.Length;
                int buffLength = 2048;
                byte[] buff = new byte[buffLength];
                int contentLen;
                try
                {
                    using (FileStream fs = fileInf.OpenRead())
                    {
                        using (Stream strm = reqFTP.GetRequestStream())
                        {
                            contentLen = fs.Read(buff, 0, buffLength);
                            while (contentLen != 0)
                            {
                                strm.Write(buff, 0, contentLen);
                                contentLen = fs.Read(buff, 0, buffLength);
                            }
                        }
                        if (log.IsErrorEnabled)
                        {
                            log.Error(string.Format("
    ----------- {0} ----------
    ", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")));
                            log.Error(fileInf.FullName + "上传到" + ftpURI + "成功");
                            log.Error("
    ");
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }
    public class DownLoadFile
        {
            string ftpServerIP;
            string ftpRemotePath;
            string ftpUserID;
            string ftpPassword;
            string fileName;
            string ftpURI;
            /// <summary>
            /// 
            /// </summary>
            /// <param name="FtpServerIP">FTP连接地址</param>
            /// <param name="FtpRemotePath">指定FTP连接成功后的当前目录, 如果不指定即默认为根目录</param>
            /// <param name="FtpUserID">用户名</param>
            /// <param name="FtpPassword">密码</param>
            /// <param name="fileName">文件名</param>
            public DownLoadFile(string FtpServerIP, string FtpRemotePath, string FtpUserID, string FtpPassword,string FileName)
            {
                ftpServerIP = FtpServerIP;
                ftpRemotePath = FtpRemotePath;
                ftpUserID = FtpUserID;
                ftpPassword = FtpPassword;
                fileName = FileName;
                ftpURI = "ftp://" + ftpServerIP + "/" + ftpRemotePath + "/"+fileName;
            }
            /// <summary>
            /// 
            /// </summary>
            /// <param name="filepath">本地存放目录</param>
            public void DownLoadFileFromFTP(string filepath) {
                FtpWebRequest ftp =(FtpWebRequest)FtpWebRequest.Create(new Uri(ftpURI));
                ftp.Credentials = new NetworkCredential(ftpUserID,ftpPassword);
                ftp.KeepAlive = false;
                ftp.Method = WebRequestMethods.Ftp.DownloadFile;
                ftp.UseBinary = true;
                ftp.UsePassive = false;
                using (FtpWebResponse response = (FtpWebResponse)ftp.GetResponse())
                {
                    using (Stream responseStream = response.GetResponseStream())
                    {
                        using (FileStream fs = new FileStream(filepath+"\"+fileName, FileMode.CreateNew))
                        {
                            try
                            {
                                long cl = response.ContentLength;
                                int bufferSize = 2048;
                                int readCount;
                                byte[] buffer = new byte[bufferSize];
                                readCount = responseStream.Read(buffer, 0, bufferSize);
                                while (readCount > 0)
                                {
                                    fs.Write(buffer, 0, readCount);
                                    readCount = responseStream.Read(buffer, 0, bufferSize);
                                }
                            }
                            catch (Exception ex)
                            {
                                throw ex;
                            }
                        }
                    }
                }
            }
        }

    在main方法中进行调用示例

    static void Main(string[] args)
            {
                UploadFile uploadFile = new UploadFile("172.18.14.67:9001", "", "administrator", "123");
                uploadFile.Upload("InsuranceInfo/XFRS106020170822.txt");
                DownLoadFile downloadFile = new DownLoadFile("172.18.14.67:9001", "", "administrator", "123", "XFRS106020170821.txt");
                downloadFile.DownLoadFileFromFTP("D:\");
            }
  • 相关阅读:
    Qt程序使用Win32 API发送ZPL指令与斑马打印机通信
    Eclipse构建Maven项目
    编码风格 缩进和空白
    Linux下Tomcat重新启动
    linux下tomcat服务的相关命令
    第一天
    Day1NLP_机器翻译
    Day4_attention is all you need 论文阅读下篇
    Day_7tensorflow 实战
    Day5_python学习
  • 原文地址:https://www.cnblogs.com/z-huan/p/7411472.html
Copyright © 2011-2022 走看看