当前位置:  编程技术>.net/c#/asp.net

C#实现的Ftp 文件上传与下载类

    来源: 互联网  发布时间:2014-08-30

    本文导语:  1,ftp上传与下载类:   代码示例: using System; using System.IO; using System.Net; namespace WindowsFormsApplication1 {     public class FtpOption     {         #region         string serverIP;         string serverPort;         string userI...

1,ftp上传与下载类:
 

代码示例:

using System;
using System.IO;
using System.Net;
namespace WindowsFormsApplication1
{
    public class FtpOption
    {
        #region

        string serverIP;
        string serverPort;
        string userId;
        string passWord;

        public FtpOption(string serverIP, string serverPort, string userId, string passWord)
        {
            this.serverIP = serverIP;
            this.serverPort = serverPort ?? "21";
            this.userId = userId;
            this.passWord = passWord;
        }

        private FtpWebRequest OpenRequest(Uri uri, string ftpMethord)
        {
            try
            {
                FtpWebRequest ftpRequest = (FtpWebRequest)FtpWebRequest.Create(uri);
                ftpRequest.Credentials = new NetworkCredential(userId, passWord);
                ftpRequest.Method = ftpMethord;
                ftpRequest.UseBinary = true;
                return ftpRequest;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        private FtpWebResponse OpenResponse(Uri uri, string ftpMethord)
        {
            try
            {
                return this.OpenRequest(uri, ftpMethord).GetResponse() as FtpWebResponse;
            }
            catch
            {
                throw new Exception("登录到Ftp服务器失败!");
            }
        }

        #endregion

        ///
        /// 下载(重命名)
        ///
        /// 下载文件全路径
        /// 下载到本机全路径(包含文件名)
        ///
        public bool DownLoadReName(string sourceFullPath, string targetFullPath)
        {
            try
            {
                Uri uri = new Uri(string.Format("ftp://{0}/{1}", serverIP, sourceFullPath));
                FtpWebResponse downloadResponse = OpenResponse(uri, WebRequestMethods.Ftp.DownloadFile);
                Stream responseStream = downloadResponse.GetResponseStream();
                FileStream fileStream = File.Create(targetFullPath);
                byte[] buffer = new byte[1024];
                int bytesRead = 0;
                while (true)
                {
                    bytesRead = responseStream.Read(buffer, 0, buffer.Length);
                    if (bytesRead == 0)
                        break;
                    fileStream.Write(buffer, 0, bytesRead);
                }
                fileStream.Close();
                responseStream.Close();
                return true;
            }
            catch
            {
                throw new Exception("获取下载文件失败!");
            }
        }
        ///
        /// 下载(按原名直接)
        /// www.
        /// 下载文件的全路径
        /// 下载到指定的地址(E:/)
        ///
        public bool DownLoadNotReName(string sourceFullPath, string targePath)
        {
            try
            {
                string fileName = sourceFullPath.Substring(sourceFullPath.LastIndexOf("/"));
                return DownLoadReName(sourceFullPath, targePath + fileName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        ///
        /// 文件上传
        ///
        /// 要上传文件的地址(G:/Ftp.txt)
        /// 服务器端地址(temp)
        ///
        public bool UploadFile(string sourceFullPath, string targetPath)
        {
            try
            {
                string fileName = sourceFullPath.Substring(sourceFullPath.LastIndexOf("/") + 1);
                //检查路径
                Uri uri = new Uri(string.Format("ftp://{0}:{1}/{2}/{3}", serverIP, serverPort, targetPath, fileName));
                FtpWebRequest request = this.OpenRequest(uri, WebRequestMethods.Ftp.UploadFile);
                Stream requestStream = request.GetRequestStream();
                FileStream fileStream = new System.IO.FileStream(sourceFullPath, FileMode.Open);
                byte[] buffer = new byte[1024];
                int bytesRead;
                while (true)
                {
                    bytesRead = fileStream.Read(buffer, 0, buffer.Length);
                    if (bytesRead == 0)
                        break;
                    requestStream.Write(buffer, 0, bytesRead);
                }
                requestStream.Close();
                request.GetResponse();
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
    }
}

2,调用示例
 

代码示例:

//调用:
FtpOption ftp = new FtpOption("10.XXX.3.90", "21", "uid", "pwd");

//下载文件:
bool success = ftp.DownLoadNotReName("file/201305/2013k4032.gif", "E:/");
bool success = ftp.DownLoadReName("file/201306/2044323o4j53.jpg", "E:/rename.003");

//上传文件:
bool success=ftp.UploadFile("G:/Ftp.txt","temp");


    
 
 

您可能感兴趣的文章:

  • c#通过委托delegate与Dictionary实现action选择器代码举例
  • C#实现获取枚举中元素个数的方法
  • C#实现自定义双击事件
  • C#键盘输入回车键实现点击按钮效果的方法
  • C#实现获取一年中是第几个星期的方法
  • C#实现Datatable排序的方法
  • C#实现装箱与拆箱操作简单实例
  • 解决C#中WebBrowser的DocumentCompleted事件不执行的实现方法
  • C#下实现创建和删除目录的实例代码
  • 使用C#实现在屏幕上画图效果的代码实例
  • C#实现过滤html标签并保留a标签的方法
  • c#实现TextBox只允许输入数字
  • C# Winform 整个窗口拖动的实现代码
  • c# ListView实现双击Item事件的变通方法
  • C#实现随鼠标移动窗体实例
  • C#中的FileUpload 选择后的预览效果具体实现
  • C# 窗体隐藏及任务管理器中禁止关闭的实现代码
  • C#的锯齿数组以及C++实现代码
  • C#格式化文件大小的实现代码
  • C#怎样才能实现窗体最小化到托盘呢?
  • C# char类型字符转换大小写的实现代码
  • 请问JSP里面怎样实现上传WORD和EXCEL文件,上传之后如何在IE里面调用显示!!!
  • 怎么实现文件上传呀?!
  • c编程实现ftp上传文件的问题
  • 脚本实现ftp上传文件的问题
  • java中怎么实现xml文件上传?
  • 如何实现图片上传、缩放并存放到数据库中
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 我用servlet实现文件上传,可我不知道怎么随意的得到服务器的路径。
  • 如何实现图片上传
  • 如何实现图片上传啊,而且我想把它记录在SQL SERVER中!!有空请帮我!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • sharepoint 2010 使用STSNavigate函数实现文件下载举例
  • 我要实现当进程打开文件时,根据文件名判断是否符合要求,符合后处理文件,再把文件返回给进程,怎么实现啊
  • Linux下c函数dlopen实现加载动态库so文件代码举例
  • socket实现多文件并发传输,求助多线程实现问题?
  • linux内存文件系统ramfs实现原理
  • 我想用APPLET实现读取客户端的图片文件,该如何实现?
  • Linux内存文件系统(ramdisk)的三种实现方式
  • linux下如实现与window下的驱动器实现文件共享??
  • 如何在其他盘中实现对这个盘中所有文件和文件的8映射
  • php实现文件下载简单示例(代码实现文件下载)
  • 如何用Java实现二进制文件到文本文件的相互转化?
  • 急!如何编程实现pdf文件转html文件?
  • 问一个问题。请问如何在文件系统管理并使用设备,也就是当一个设备装载,下载时。文件系统是如何实现的
  • 请问如何实现将一个文件中的某一行拷贝到另一个文件中?答对定给分!
  • 请问在jsp中如何实现相对路径?我在jsp文件中指定相对路径的文件,可是程序找不到!
  • 实现core文件自动生成配置文件的方法
  • 用户通过mozilla访问页面文件,提交的参数要记录到系统的配置文件中去,如何来实现这个接口?
  • 如新建一个文件夹里面有a.txt b.txt 然后将这个文件夹删除。用一句来实现怎么写啊?
  • 求助 shell中split命令如何实现文件分割 并统计分割文件个数。分割完之后,命名方式从 文件名.001 开始
  • sftp实现两台主机之间传输文件(把一个主机中的文件拷贝到另一个)
  • 急问:怎么将一个文本文件平均拆分成10个文本文件?在shell里面怎么实现?谢谢
  • 通过javascript实现DIV居中,兼容各浏览器版本
  • interface 到底有什么用???实现接口,怎么实现??
  • Python GUI编程:tkinter实现一个窗口并居中代码
  • C#键盘输入回车键实现点击按钮效果的方法 iis7站长之家
  • 通过javascript库JQuery实现页面跳转功能代码
  • windows 下的PortTunnel 在linux下怎么实现?或者相应的已经实现的软件?端口映射
  • php实现socket实现客户端和服务端数据通信源代码
  • 网站重定向用C语言实现iptables,ACL实现
  • flash AS3反射实现(describeType和getDefinitionByName)
  • 在linux下如何编程实现nslookup命令实现的IP地址和域名互相转换的功能?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3