[转贴]C#中的Ftp组件和简单的Ftp客户端
2005-03-13 15:26
399 查看
程序说明: 原作者Jerome Lacaille,代码大小:k48。 环境:C#, .NET 下面是翻译的作者的说明。简介 这时我第一次写一个C#的组件,我决定做一个实现FTP的组件。这里提供一个使用这个组件的简单的代码。我并不能保证这个组件的代码可以很好的工作于任何情况下,但是我想我会在得到的反馈中改进它。 把这个组件加入到ToolBox(使用自定义的ToolBox )中并放到你的form里。这个工程包括了一个简单的FTP客户端。 代码: 连接到FTP服务器: ftpc.Username = EFUsername.Text; ftpc.Password = EFPassword.Text; ftpc.Hostname = CBFTPServer.Text; ftpc.Connect(); 登陆服务器: private void ftpc_Connected(object sender, FTPCom.FTPEventArgs e) { ftpc.Login(); } 成功连接后时间将被记录: private void ftpc_Logged(object sender, FTPCom.FTPEventArgs e) { ftpc.Dir(); } 得到一个目录列表: private void ftpc_DirCompleted(object sender, FTPCom.FTPEventArgs e) { int i = 0; int idimage = 0; string msg; msg = "Transfered " + e.TotalBytes.ToString() + " bytes in " + ((float)e.TimeElapsed / 1000).ToString() + " seconds" + CRLF; TextLog.SelectionColor = Color.Black; TextLog.AppendText(msg); ServerView.BeginUpdate(); ServerView.Items.Clear(); ImgListServerSmall.Images.Clear(); ListViewItem lvItem = new ListViewItem(".."); ServerView.Items.Add(lvItem); for (i = 0; i < ftpc.FileCount; i++) { if (ftpc.IsFolder(i)) { string[] items = new String[2]; items[0] = ftpc.GetFileName(i); items[1] = ftpc.GetFileSize(i).ToString(); ImgListServerSmall.Images.Add (m_IconFolder); ServerView.Items.Add(new ListViewItem(items, idimage++)); } } for (i = 0; i < ftpc.FileCount; i++) { if (!ftpc.IsFolder(i)) { string[] items = new String[2]; items[0] = ftpc.GetFileName(i); items[1] = ftpc.GetFileSize(i).ToString(); ImgListServerSmall.Images.Add (ExtractIcon.GetIcon(items[0], false)); ServerView.Items.Add(new ListViewItem(items, idimage++)); } } ServerView.EndUpdate(); this.Cursor = Cursors.Default; } 下载一个文件: private void ServerView_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { if (e.Button != 0) { string msg = ""; for (int i = 0; i < ServerView.SelectedItems.Count; i++) { msg += ServerView.SelectedItems[i].Text + "/n"; } ServerView.DoDragDrop(msg, DragDropEffects.Copy | DragDropEffects.Move); } } private void LocalView_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.Text)) e.Effect = DragDropEffects.Copy; else e.Effect = DragDropEffects.None; } private void LocalView_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) { string msg = e.Data.GetData(DataFormats.Text).ToString(); string[] filename = msg.Split(new char[] { '/n' }); foreach (string sfile in filename) { ftpc.FileDownload(sfile); } } 当下载结束时,会放回一个FileDownloadCompleted事件: private void ftpc_FileDownloadCompleted(object sender, FTPCom.FTPEventArgs e) { string msg = "Transfered " + e.TotalBytes.ToString() + " bytes in " + ((float)e.TimeElapsed / 1000).ToString() + " seconds" + CRLF; TextLog.SelectionColor = Color.Black; TextLog.AppendText(msg); FillLocalView(m_currentFolder); } 删除文件: for (int i = 0; i < ServerView.SelectedItems.Count; i++) { ftpc.Delete (ServerView.SelectedItems[i].Text); } ftpc.Dir(); 重命名文件: private void ServerView_AfterLabelEdit(object sender, System.Windows.Forms.LabelEditEventArgs e) { if (e.Label != null) { this.Cursor = Cursors.WaitCursor; string newfilename = e.Label; if (m_previousfilename == "New Folder") { ftpc.DirCreate(newfilename); } else { ftpc.Rename(m_previousfilename, newfilename); } ftpc.Dir(); } } 断开连接: ftpc.Disconnect(); ServerView.Items.Clear(); 希望给你一定的帮助。 |
相关文章推荐
- c#实现的一个简单的FTP客户端
- C#实现的简单ftp客户端
- c#实现的一个简单的FTP客户端
- [翻译].net 2.0(c#)下简单的FTP应用程序
- c#中异步基于消息通信的完成端口的TCP/IP协议的组件实现(源代码) 客户端
- C# Socket简单例子(服务器与客户端通信)【转】
- C#2.0简单ftp文件上传方法
- FTP客户端(Delphi7&amp;Indy组件实现)
- 使用socket实现简单的客户端和服务端通信(C#语言)
- C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 客户端配置文件简化,简单简单再简单
- 一个FTP客户端的C#代码
- .net 2.0(c#)下简单的FTP应用程序
- (转贴)C#窗体贴边自动隐藏组件
- 今天终于解决了用vb客户端调用C#生成的组件注册的问题了!
- C#服务器客户端通信简单实现
- FTP客户端简单例程
- C# Socket简单例子(服务器与客户端通信)
- C# TCP 服务端(PC)与客户端(PPC) 简单代码
- C# 编写WCF简单的服务端与客户端
- 推荐一个简单、轻量、功能非常强大的C#/ASP.NET定时任务执行管理器组件–FluentScheduler