zoukankan      html  css  js  c++  java
  • [FTP] FTPOperater--FTP操作帮助类 (转载)

    点击下载 FTPOperater.zip

    这个类是关于FTP的一些操作的
    1.连接FTP服务器 
    2.上传
    3.下载
    4.删除文件
    5.获取当前目录下明细(包含文件和文件夹)  
    6.获取FTP文件列表(包括文件夹)
    7.获取当前目录下文件列表(不包括文件夹)  
    8.判断当前目录下指定的文件是否存在  
    9.创建文件夹  
    10.获取指定文件大小  
    11.更改文件名
    12.移动文件
    13.切换当前目录
    看下面代码吧

    /// <summary>
    /// 类说明:CacheHelper
    /// 联系方式:361983679  
    /// 更新网站:[url=http://www.cckan.net/thread-655-1-1.html]http://www.cckan.net/thread-655-1-1.html[/url]
    /// </summary>
    using System;
    using System.Text;
    using System.IO;
     
    namespace DotNet.Utilities
    {
        /// <summary>
        /// FTP操作类
        /// </summary>
        public class FTPOperater
        {
            #region 属性
            private FTPClient ftp;
            /// <summary>
            /// 全局FTP访问变量
            /// </summary>
            public FTPClient Ftp
            {
                get { return ftp; }
                set { ftp = value; }
            }
     
            private string _server;
            /// <summary>
            /// Ftp服务器
            /// </summary>
            public string Server
            {
                get { return _server; }
                set { _server = value; }
            }
     
            private string _User;
            /// <summary>
            /// Ftp用户
            /// </summary>
            public string User
            {
                get { return _User; }
                set { _User = value; }
            }
     
            private string _Pass;
            /// <summary>
            /// Ftp密码
            /// </summary>
            public string Pass
            {
                get { return _Pass; }
                set { _Pass = value; }
            }
     
            private string _FolderZJ;
            /// <summary>
            /// Ftp密码
            /// </summary>
            public string FolderZJ
            {
                get { return _FolderZJ; }
                set { _FolderZJ = value; }
            }
     
            private string _FolderWX;
            /// <summary>
            /// Ftp密码
            /// </summary>
            public string FolderWX
            {
                get { return _FolderWX; }
                set { _FolderWX = value; }
            }
            #endregion
     
            /// <summary>
            /// 得到文件列表
            /// </summary>
            /// <returns></returns>
            public string[] GetList(string strPath)
            {
                if (ftp == null) ftp = this.getFtpClient();
                ftp.Connect();
                ftp.ChDir(strPath);
                return ftp.Dir("*");
            }
     
            /// <summary>
            /// 下载文件
            /// </summary>
            /// <param name="ftpFolder">ftp目录</param>
            /// <param name="ftpFileName">ftp文件名</param>
            /// <param name="localFolder">本地目录</param>
            /// <param name="localFileName">本地文件名</param>
            public bool GetFile(string ftpFolder, string ftpFileName, string localFolder, string localFileName)
            {
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (!ftp.Connected)
                    {
                        ftp.Connect();
                        ftp.ChDir(ftpFolder);
                    }
                    ftp.Get(ftpFileName, localFolder, localFileName);
     
                    return true;
                }
                catch
                {
                    try
                    {
                        ftp.DisConnect();
                        ftp = null;
                    }
                    catch { ftp = null; }
                    return false;
                }
            }
     
            /// <summary>
            /// 修改文件
            /// </summary>
            /// <param name="ftpFolder">本地目录</param>
            /// <param name="ftpFileName">本地文件名temp</param>
            /// <param name="localFolder">本地目录</param>
            /// <param name="localFileName">本地文件名</param>
            public bool AddMSCFile(string ftpFolder, string ftpFileName, string localFolder, string localFileName, string BscInfo)
            {
                string sLine = "";
                string sResult = "";
                string path = "获得应用程序所在的完整的路径";
                path = path.Substring(0, path.LastIndexOf("\"));
                try
                {
                    FileStream fsFile = new FileStream(ftpFolder + "\" + ftpFileName, FileMode.Open);
                    FileStream fsFileWrite = new FileStream(localFolder + "\" + localFileName, FileMode.Create);
                    StreamReader sr = new StreamReader(fsFile);
                    StreamWriter sw = new StreamWriter(fsFileWrite);
                    sr.BaseStream.Seek(0, SeekOrigin.Begin);
                    while (sr.Peek() > -1)
                    {
                        sLine = sr.ReadToEnd();
                    }
                    string[] arStr = sLine.Split(new string[] { "
    " }, StringSplitOptions.RemoveEmptyEntries);
     
                    for (int i = 0; i < arStr.Length - 1; i++)
                    {
                        sResult += BscInfo + "," + arStr.Trim() + "
    ";
                    }
                    sr.Close();
                    byte[] connect = new UTF8Encoding(true).GetBytes(sResult);
                    fsFileWrite.Write(connect, 0, connect.Length);
                    fsFileWrite.Flush();
                    sw.Close();
                    fsFile.Close();
                    fsFileWrite.Close();
                    return true;
                }
                catch (Exception e)
                {
                    return false;
                }
            }
     
            /// <summary>
            /// 删除文件
            /// </summary>
            /// <param name="ftpFolder">ftp目录</param>
            /// <param name="ftpFileName">ftp文件名</param>
            public bool DelFile(string ftpFolder, string ftpFileName)
            {
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (!ftp.Connected)
                    {
                        ftp.Connect();
                        ftp.ChDir(ftpFolder);
                    }
                    ftp.Delete(ftpFileName);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
     
            /// <summary>
            /// 上传文件
            /// </summary>
            /// <param name="ftpFolder">ftp目录</param>
            /// <param name="ftpFileName">ftp文件名</param>
            public bool PutFile(string ftpFolder, string ftpFileName)
            {
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (!ftp.Connected)
                    {
                        ftp.Connect();
                        ftp.ChDir(ftpFolder);
                    }
                    ftp.Put(ftpFileName);
                    return true;
                }
                catch
                {
                    return false;
                }
            }
     
            /// <summary>
            /// 下载文件
            /// </summary>
            /// <param name="ftpFolder">ftp目录</param>
            /// <param name="ftpFileName">ftp文件名</param>
            /// <param name="localFolder">本地目录</param>
            /// <param name="localFileName">本地文件名</param>
            public bool GetFileNoBinary(string ftpFolder, string ftpFileName, string localFolder, string localFileName)
            {
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (!ftp.Connected)
                    {
                        ftp.Connect();
                        ftp.ChDir(ftpFolder);
                    }
                    ftp.GetNoBinary(ftpFileName, localFolder, localFileName);
                    return true;
                }
                catch
                {
                    try
                    {
                        ftp.DisConnect();
                        ftp = null;
                    }
                    catch
                    {
                        ftp = null;
                    }
                    return false;
                }
            }
     
            /// <summary>
            /// 得到FTP上文件信息
            /// </summary>
            /// <param name="ftpFolder">FTP目录</param>
            /// <param name="ftpFileName">ftp文件名</param>
            public string GetFileInfo(string ftpFolder, string ftpFileName)
            {
                string strResult = "";
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (ftp.Connected) ftp.DisConnect();
                    ftp.Connect();
                    ftp.ChDir(ftpFolder);
                    strResult = ftp.GetFileInfo(ftpFileName);
                    return strResult;
                }
                catch
                {
                    return "";
                }
            }
     
            /// <summary>
            /// 测试FTP服务器是否可登陆
            /// </summary>
            public bool CanConnect()
            {
                if (ftp == null) ftp = this.getFtpClient();
                try
                {
                    ftp.Connect();
                    ftp.DisConnect();
                    return true;
                }
                catch
                {
                    return false;
                }
            }
     
            /// <summary>
            /// 得到FTP上文件信息
            /// </summary>
            /// <param name="ftpFolder">FTP目录</param>
            /// <param name="ftpFileName">ftp文件名</param>
            public string GetFileInfoConnected(string ftpFolder, string ftpFileName)
            {
                string strResult = "";
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (!ftp.Connected)
                    {
                        ftp.Connect();
                        ftp.ChDir(ftpFolder);
                    }
                    strResult = ftp.GetFileInfo(ftpFileName);
                    return strResult;
                }
                catch
                {
                    return "";
                }
            }
     
            /// <summary>
            /// 得到文件列表
            /// </summary>
            /// <param name="ftpFolder">FTP目录</param>
            /// <returns>FTP通配符号</returns>
            public string[] GetFileList(string ftpFolder, string strMask)
            {
                string[] strResult;
                try
                {
                    if (ftp == null) ftp = this.getFtpClient();
                    if (!ftp.Connected)
                    {
                        ftp.Connect();
                        ftp.ChDir(ftpFolder);
                    }
                    strResult = ftp.Dir(strMask);
                    return strResult;
                }
                catch
                {
                    return null;
                }
            }
     
            /// <summary>
            ///得到FTP传输对象
            /// </summary>
            public FTPClient getFtpClient()
            {
                FTPClient ft = new FTPClient();
                ft.RemoteHost = this.Server;
                ft.RemoteUser = this.User;
                ft.RemotePass = this.Pass;
                return ft;
            }
        }
    }
  • 相关阅读:
    Access restriction: The type * is not accessible due to restrict,报错问题,只试过第二种,OK。
    Java读写Properties文件
    MyBatis学习4---使用MyBatis_Generator生成Dto、Dao、Mapping
    Mybatis 3+Mysql 实现批量插入
    Java访问MySQL数据库的SqlHelper类以及测试程序
    sun.net.ftp.FtpClient(java访问/操作ftp)
    java通过ftp方式读取文件,并解析入库
    Linux CPU 上下文切换
    Perl-DBI
    Perl文件句柄和文件描述符
  • 原文地址:https://www.cnblogs.com/lizeyan/p/3628607.html
Copyright © 2011-2022 走看看