【C#工具类】SFTP--自定义SFTPFactory(上传下载)

来源:互联网 发布:svm算法代码 编辑:程序博客网 时间:2024/06/08 00:48

上一篇写了FTP上传和下载,这里写一个SFTP的上传下载工具类。
SFTP与FTP的区别:
SFTP使用的是加密传输认真信息和传输数据,传输效率低于FTP,对网络安全性要求较高。

SFTPFactory工具类:

 public class SFTPFactory    {        private SshTransferProtocolBase m_sshCp;        private SFTPFactory()        {        }        public SFTPFactory(string FTPHost,string FTPUserName,string FTPpassWord,int FTPPort)        {            m_sshCp = new Sftp(FTPHost, FTPUserName, FTPpassWord, FTPPort);        }        public bool Connected        {            get            {                return m_sshCp.Connected;            }        }        public void Connect()        {            if (!m_sshCp.Connected)            {                m_sshCp.Connect();            }        }        public void Close()        {            if (m_sshCp.Connected)            {                m_sshCp.Close();            }        }        public bool Upload(string localPath, string remotePath)        {            try            {                if (!m_sshCp.Connected)                {                    m_sshCp.Connect();                }                m_sshCp.Put(localPath, remotePath);                return true;            }            catch            {                return false;            }        }        public bool Download(string remotePath, string localPath)        {            try            {                if (!m_sshCp.Connected)                {                    m_sshCp.Connect();                }                m_sshCp.Get(remotePath, localPath);                return true;            }            catch            {                return false;            }        }        public bool Delete(string remotePath)        {            try            {                if (!m_sshCp.Connected)                {                    m_sshCp.Connect();                }                                ((Sftp)m_sshCp).DeleteFile(remotePath);//刚刚新增的Delete方法                return true;            }            catch            {                return false;            }        }        public ArrayList GetFileList(string path)        {            try            {                if (!m_sshCp.Connected)                {                    m_sshCp.Connect();                }                return ((Sftp)m_sshCp).GetFileList(path);            }            catch            {                return null;            }        }        public void CD(string dictionary)        {            ((Sftp)m_sshCp).CD(dictionary);         }        public bool FileExisted(string fileMask, string fileName)        {            bool flg = false;            if (!Connected)            {                Connect();            }            ArrayList strFiles = GetFileList(fileMask);            foreach (string strFile in strFiles)            {                if (!strFile.Equals(""))                {                    if (strFile.ToLower() == fileName.ToLower())                    {                        flg = true;                        break;                    }                }            }            return flg;        }    }
0 0
原创粉丝点击