zoukankan      html  css  js  c++  java
  • C#.NET 操作FTP

    工具类:

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Net;
    
    namespace CommonUtils
    {
        public static class FtpUtil
        {
            public static bool Download(string localFileFullName, Uri ftpFileFullName, string FtpUid, string FtpPwd, out string errMsg)
            {
                errMsg = "";
    
                FtpWebRequest reqFTP;
                FileStream outputStream = null;
                try
                {
                    outputStream = new FileStream(localFileFullName, FileMode.Create);
    
                    reqFTP = (FtpWebRequest)FtpWebRequest.Create(ftpFileFullName);
                    reqFTP.Method = WebRequestMethods.Ftp.DownloadFile;
                    reqFTP.KeepAlive = false;
                    reqFTP.UseBinary = true;
                    reqFTP.Credentials = new NetworkCredential(FtpUid, FtpPwd);
                    FtpWebResponse response = (FtpWebResponse)reqFTP.GetResponse();
                    Stream ftpStream = response.GetResponseStream();
                    long cl = response.ContentLength;
                    int bufferSize = 2048;
                    int readCount;
                    byte[] buffer = new byte[bufferSize];
    
                    readCount = ftpStream.Read(buffer, 0, bufferSize);
                    while (readCount > 0)
                    {
                        outputStream.Write(buffer, 0, readCount);
                        readCount = ftpStream.Read(buffer, 0, bufferSize);
                    }
    
                    ftpStream.Close();
                    outputStream.Close();
                    response.Close();
    
                }
                catch (Exception ex)
                {
                    errMsg = ex.Message;
                    return false;
                }
                finally
                {
                    if (outputStream != null)
                        outputStream.Close();
                }
    
                return true;
    
            }
    
    
            public static bool UploadFile(string localFile, Uri ur, string FtpUid, string FtpPwd,int timeOut, out string errMsg)
            {
                errMsg = "";
    
                FileInfo fi = new FileInfo(localFile);
                FileStream fs = fi.OpenRead();
                long length = fs.Length;
                FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ur);
                req.Credentials = new NetworkCredential(FtpUid, FtpPwd);
                req.Method = WebRequestMethods.Ftp.UploadFile;
                req.KeepAlive = false;
                req.UseBinary = true;
                req.ContentLength = length;
                req.Timeout = timeOut * 1000;
                req.ReadWriteTimeout= timeOut * 1000;
    
                try
                {
                    Stream stream = req.GetRequestStream();
    
                    int BufferLength = 2048; //2K   
                    byte[] b = new byte[BufferLength];
                    int i;
                    while ((i = fs.Read(b, 0, BufferLength)) > 0)
                    {
                        stream.Write(b, 0, i);
                    }
                    stream.Close();
                    stream.Dispose();
    
                }
                catch (Exception ex)
                {
                    errMsg = ex.Message;
                    return false;
                }
    
                return true;
            }
    
    
            
    
    
        }
    }

    调用:

    string FtpUid = "ftpcer";
                    string FtpPwd = "toda";
                    string errMsg = "";
                    string upFileFullName = lblPath.Text;//本地要上传的文件
                    string fileName = Path.GetFileName(upFileFullName);
    
                    string _o2oFtpBaseUrl = "ftp://127.0.0.1:23";
                    string ftpFullName = _o2oFtpBaseUrl + "/" + fileName;
                    Uri ur = new Uri(ftpFullName);//远程FTP全路径名
    
                    bool bRst = CommonUtils.FtpUtil.UploadFile(upFileFullName, ur, FtpUid, FtpPwd,30, out errMsg);
                    if (bRst)
                    {
                        MessageBox.Show("上传成功!");
                    }
                    else
                    {
                        MessageBox.Show("上传失败!" + errMsg);
                    }

    --

  • 相关阅读:
    对于工程师责任和责任边界的认知
    windows消息机制与实例
    final阶段团队贡献分分配
    Final阶段用户调查报告
    对金州勇士团队的项目进行功能分解(加分作业)
    final review 报告
    final发布评论
    本周PSP
    final发布视频
    【转】mac版微信web开发者工具(小程序开发工具)无法显示二维码 解决方案
  • 原文地址:https://www.cnblogs.com/runliuv/p/14966252.html
Copyright © 2011-2022 走看看