C#实现ftp下载文件

    /// <summary>

        /// ftp方式上传

        /// </summary>

        public static int UploadFtp(string filePath, string filename, string ftpServerIP, string ftpUserID, string ftpPassword)

        {

            FileInfo fileInf = new FileInfo(filePath + "\\" + filename);

            string uri = "ftp://" + ftpServerIP + "/" + fileInf.Name;

            FtpWebRequest reqFTP;

            // Create FtpWebRequest object from the Uri provided

            reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/" + fileInf.Name));

            try

            {

                // Provide the WebPermission Credintials

                reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);

                // By default KeepAlive is true, where the control connection is not closed

                // after a command is executed.

                reqFTP.KeepAlive = false;

                // Specify the command to be executed.

                reqFTP.Method = WebRequestMethods.Ftp.UploadFile;

                // Specify the data transfer type.

                reqFTP.UseBinary = true;

                // Notify the server about the size of the uploaded file

                reqFTP.ContentLength = fileInf.Length;

                // The buffer size is set to 2kb

                int buffLength = 2048;

                byte[] buff = new byte[buffLength];

                int contentLen;

                // Opens a file stream (System.IO.FileStream) to read the file to be uploaded

                //FileStream fs = fileInf.OpenRead();

                FileStream fs = fileInf.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

                // Stream to which the file to be upload is written

                Stream strm = reqFTP.GetRequestStream();

                // Read from the file stream 2kb at a time

                contentLen = fs.Read(buff, 0, buffLength);

                // Till Stream content ends

                while (contentLen != 0)

                {

                    // Write Content from the file stream to the FTP Upload Stream

                    strm.Write(buff, 0, contentLen);

                    contentLen = fs.Read(buff, 0, buffLength);

                }

                // Close the file stream and the Request Stream

                strm.Close();

                fs.Close();

                return 0;

            }

            catch (Exception ex)

            {

                reqFTP.Abort();

                //  Logging.WriteError(ex.Message + ex.StackTrace);

                return -2;

            }

        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值