`

C# FTP 自动创建目录/上传文件

    博客分类:
  • c#
c# 
阅读更多
        //上传文件
        public static Boolean FtpUpload(string ftpPath,string localFile)
        {
            //检查目录是否存在,不存在创建
            FtpCheckDirectoryExist(ftpPath);
            FileInfo fi = new FileInfo(localFile);
            FileStream fs = fi.OpenRead();
            long length = fs.Length;
            FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpServerIP + ftpPath + fi.Name);
            req.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            req.Method = WebRequestMethods.Ftp.UploadFile;
            req.ContentLength = length;
            req.Timeout = 10 * 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 e)
            {
                ErrLog(e.Message + e.StackTrace);
                return false;
            }
            finally
            {
                fs.Close();
                req.Abort();
            }
            req.Abort();
            return true;
        }

        //判断文件的目录是否存,不存则创建
        public static void FtpCheckDirectoryExist(string destFilePath)
        {
            string fullDir = FtpParseDirectory(destFilePath);
            string[] dirs = fullDir.Split('/');
            string curDir = "/";
            for (int i = 0; i < dirs.Length; i++)
            {
                string dir = dirs[i];
                //如果是以/开始的路径,第一个为空  
                if (dir != null && dir.Length > 0)
                {
                    try
                    {
                        curDir += dir + "/";
                        FtpMakeDir(curDir);
                    }
                    catch (Exception)
                    {}
                }
            }
        }

        public static string FtpParseDirectory(string destFilePath)
        {
            return destFilePath.Substring(0, destFilePath.LastIndexOf("/"));
        }  

        //创建目录
        public static Boolean FtpMakeDir(string localFile)
        {
            FtpWebRequest req = (FtpWebRequest)WebRequest.Create(ftpServerIP + localFile);
            req.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
            req.Method = WebRequestMethods.Ftp.MakeDirectory;
            try
            {
                FtpWebResponse response = (FtpWebResponse)req.GetResponse();
                response.Close();
            }
            catch (Exception)
            {
                req.Abort();
                return false;
            }
            req.Abort();
            return true;
        }
分享到:
评论

相关推荐

    C#基类库大全下载--苏飞版

    FTPClient--FTP操作帮助类,FTP上传,FTP下载,FTP文件操作,FTP目录操作 FTPHelper FTPHelper-FTP帮助类,FTP常用操作方法,添加文件,删除文件等 FTPOperater FTP操作帮助类,方法比较多,比较实用 6.JS操作...

    C#开发典型模块大全

    11.2.4 获取指定目录下的所有文件及文件夹 265 11.2.5 Word操作技术 266 11.2.6 进度条的显示 266 11.2.7 对ListView控件中的项进行排序 267 11.3 设计过程 267 11.3.1 主窗体预览 267 11.3.2 批量复制...

    C#开发典型模块大全(光盘)第二部分

    明日科技出版的c#开发典型模块大全配套光盘,要的可以下载,因大小受限,分开上传! 第1章 认识C#及开发环境 1.1 C#概述 1.1.1 C#发展历程 1.1.2 C#语言编程环境 1.2.NETFramework2.0简介 1.2.1 什么是....

    C#基类库(苏飞版)

    FTPClient--FTP操作帮助类,FTP上传,FTP下载,FTP文件操作,FTP目录操作 FTPHelper FTPHelper-FTP帮助类,FTP常用操作方法,添加文件,删除文件等 FTPOperater FTP操作帮助类,方法比较多,比较实用 6.JS操作...

    C#开发典型模块大全(光盘)第一部分

    明日科技出版的c#开发典型模块大全配套光盘,要的可以下载,因大小受限,分开上传! 第1章 认识C#及开发环境 1.1 C#概述 1.1.1 C#发展历程 1.1.2 C#语言编程环境 1.2.NETFramework2.0简介 1.2.1 什么是....

    C#开发典型模块大全(光盘)

    11.2.4 获取指定目录下的所有文件及文件夹 11.2.5 Word操作技术 11.2.6 进度条的显示 11.2.7 对ListView控件中的项进行排序 11.3 设计过程 11.3.1 主窗体预览 11.3.2 批量复制、剪切文件 11.3.3 批量复制、剪切...

    Editplus 3[1].0

    在“参数选择”的文件选项页,禁用“'保存时自动创建备份文件”选项 【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件 要添加 *.STX(语法文件)或 *.ACP(自动完成文件): 1. 选择“参数选择→语法...

    editplus 代码编辑器html c++ jsp css

    在“参数选择”的文件选项页,禁用“'保存时自动创建备份文件”选项 【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件 要添加 *.STX(语法文件)或 *.ACP(自动完成文件): 1. 选择“参数选择→语法...

    EditPlus 2整理信箱的工具

    在“参数选择”的文件选项页,禁用“'保存时自动创建备份文件”选项 【13】软件技巧——添加语法文件、自动完成文件、以及剪辑库文件 要添加 *.STX(语法文件)或 *.ACP(自动完成文件): 1. 选择“参数选择→语法...

    asp.net知识库

    SQL过程自动C#封装,支持从表到基本存储过程生成 使用SQLDMO控制 SQL Server 使用SQL-DMO实现定制SQL Scripts Create Tables and Build inserts from Tables by using Mygeneration Templates(Sql Server) C# 获取...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    12.2.3 上传文件 12.2.4 使文件对多用户安全 12.2.5 压缩 12.3 序列化 12.4 总结 第13章 LINQ 13.1 LINQ基础 13.1.1 延迟执行 13.1.2 LINQ是如何工作的 13.1.3 LINQ表达式 13.1.4 揭秘LINQ...

    《程序天下:JavaScript实例自学手册》光盘源码

    19.2 改变上传文件控件的样式 19.3 上传文件一次完成 19.4 使用正则判断文件扩展名 19.5 多附件上传效果 19.6 上传控件内容清空 19.7 textarea显示记事本文件的内容 19.8 使用FSO读写文本文件 19.9 自动启动文件下载...

    程序天下:JavaScript实例自学手册

    19.2 改变上传文件控件的样式 19.3 上传文件一次完成 19.4 使用正则判断文件扩展名 19.5 多附件上传效果 19.6 上传控件内容清空 19.7 textarea显示记事本文件的内容 19.8 使用FSO读写文本文件 19.9 自动启动文件下载...

    DotWe论坛程序AspxBBS4

    3.后台配置了一个WEB资源管理器,可以对文件、目录进行上传、粘贴、复制、删除、编辑、创建、剪切移动等,管理网站基本上就不需要FTP软件了。4.安全性高达100%,本系统不怕木马和脚本,不仅不怕,还支持、允许用户...

    ASP.NET2.0高级编程(第4版)1/6

    22.1 使用驱动器、目录和文件739 22.1.1 DriveInfo类739 22.1.2 Directory和  DirectoryInfo类743 22.1.3 File和FileInfo类749 22.1.4 使用路径753 22.1.5 文件和目录的属性、  特性和访问控制列表757 22.2 读写...

    DotWe论坛(原AspxBBS) v5.1 万能虚拟形象系统

    后台配置了一个WEB资源管理器,可以对文件、目录进行上传、粘贴、复制、删除、编辑、创建、剪切移动等,管理网站基本上就不需要FTP软件了。  4.安全性高达100%,本系统不怕木马和脚本,不仅不怕,还支持、允许用户...

    2.ASP.NET.2.0.高级编程(第4版) [1/7]

    6.3.2 指定正确的ASP.NET权限给上传文件 172 6.3.3 理解文件大小的限制 173 6.3.4 把上传的文件放在Stream对象中 174 6.3.5 把文件内容从Stream对象移动到Byte数组中 175 6.4 MultiView和View服务器控件 175 ...

Global site tag (gtag.js) - Google Analytics