asp.net 操作FTP作为数据中转-Helper.cs
2018-01-08 10:29
357 查看
public class SFTPHelper { private Session m_session; private Channel m_channel; private ChannelSftp m_sftp; public SFTPHelper(string host, string user, string pwd) { string[] arr = host.Split(':'); string ip = arr[0]; int port = 22; if (arr.Length > 1) port = Int32.Parse(arr[1]); JSch jsch = new JSch(); m_session = jsch.getSession(user, ip, port); MyUserInfo ui = new MyUserInfo(); ui.setPassword(pwd); m_session.setUserInfo(ui); } public bool Connected { get { return m_session.isConnected(); } } public bool Connect() { try { if (!Connected) { m_session.connect(); m_channel = m_session.openChannel("sftp"); m_channel.connect(); m_sftp = (ChannelSftp)m_channel; } return true; } catch { return false; } } public void Disconnect() { if (Connected) { m_channel.disconnect(); m_session.disconnect(); } } public bool Put(string localPath, string remotePath) { try { Tamir.SharpSsh.java.String src=new Tamir.SharpSsh.java.String(localPath); Tamir.SharpSsh.java.String dst=new Tamir.SharpSsh.java.String(remotePath); m_sftp.put(src,dst); return true; } catch { return false; } } public bool Get(string remotePath, string localPath) { try { Tamir.SharpSsh.java.String src = new Tamir.SharpSsh.java.String(remotePath); Tamir.SharpSsh.java.String dst = new Tamir.SharpSsh.java.String(localPath); m_sftp.get(src, dst); return true; } catch { return false; } } public bool Delete(string remoteFile) { try { m_sftp.rm(remoteFile); return true; } catch { return false; } } public bool Remove(string sourcePath, string deskPath) { try { m_sftp.symlink(sourcePath, deskPath); return true; } catch { return false; } } public ArrayList GetFileList(string remotePath, string fileType) { try { Tamir.SharpSsh.java.util.Vector vvv = m_sftp.ls(remotePath); ArrayList objList = new ArrayList(); foreach (Tamir.SharpSsh.jsch.ChannelSftp.LsEntry qqq in vvv) { string sss=qqq.getFilename(); if (sss.Length > (fileType.Length + 1) && fileType == sss.Substring(sss.Length - fileType.Length)) { objList.Add(sss); } else { continue; } } return objList; } catch { return null; } } public class MyUserInfo : UserInfo { String passwd; public String getPassword() { return passwd; } public void setPassword(String passwd) { this.passwd = passwd; } public String getPassphrase() { return null; } public bool promptPassphrase(String message) { return true; } public bool promptPassword(String message) { return true; } public bool promptYesNo(String message) { return true; } public void showMessage(String message) { } } }
相关文章推荐
- Asp.Net连接Oracle数据库的通用类orahelper.cs并且利用它对数据库查询、汇总、更新等操作演示
- 在ASP.NET 2.0中操作数据::创建一个数据访问层
- 【ASP.NET 问题】System.InvalidOperationException: 对象的当前状态使该操作无效 【大量表单数据提交】错误解决
- NET操作Excel的通用类ExecelHelper.cs
- 在ASP.NET 2.0中操作数据之一:创建一个数据访问层
- asp.net中操作ftp的方法
- asp.net+javascript+css(模仿google的拖拽的个性网页布局)(操作数据库篇)
- 在ASP.NET 2.0中操作数据之三十六:在DataList里编辑和删除数据概述
- 在ASP.NET 2.0中操作数据:创建一个业务逻辑层
- C#(asp.net)对字符串的操作公共类(StringUtil.cs)
- ASP.NET中数据绑定的Eval 和 bind 的区别及数据绑定中的操作
- 比较不错的几个tips-(1)asp。net操作ftp,上传和下载 (2) 长时间提交,在提交后禁止页面按钮 (3) 方便的javascript日历
- 在ASP.NET 2.0中操作数据之四十七:用SqlDataSource控件插入、更新、删除数据
- 在ASP.NET 2.0中操作数据之四十六:使用SqlDataSource控件检索数据
- 在ASP.NET 2.0中操作数据之三:创建母版页和站点导航
- ASP.NET中Gridview读取数据表列表页面常用操作-序号,编辑,删除,删除确认
- asp.net(c#)快速生成Json格式的数据(JsonHelper)
- 在ASP.NET 2.0中操作数据之五十七:在分层架构中缓存数据
- 在ASP.NET 2.0中操作数据之五十三:在Data Web控件显示二进制数据
- 在ASP.NET 2.0中操作数据之六十:创建一个自定义的Database-Driven Site Map Provider