社区
C#
帖子详情
winform中如何連接FTP目錄?
sqfeiyu
2005-12-07 01:15:34
我想在代碼中連接ftp目錄﹐向里面添加文件﹐然后斷開。使程序關閉后不能訪問ftp目錄.
程序是運行在工作站的Windows程序﹐ftp目錄在局域網的服務器上﹐(出于安全﹐不方便用直接共享)
請問有方法解決嗎﹖
...全文
262
2
打赏
收藏
winform中如何連接FTP目錄?
我想在代碼中連接ftp目錄﹐向里面添加文件﹐然后斷開。使程序關閉后不能訪問ftp目錄. 程序是運行在工作站的Windows程序﹐ftp目錄在局域網的服務器上﹐(出于安全﹐不方便用直接共享) 請問有方法解決嗎﹖
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
自由程序员
2005-12-07
打赏
举报
回复
C#中的Ftp组件和简单的Ftp客户端
程序说明:
原作者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();
希望给你一定的帮助。
==
原文出处:http://blog.csdn.net/snaill/archive/2005/03/13/318659.aspx
===
更详细的看这个http://www.asp112.com/xxxx/3911/3911123.htm
ccg68
2005-12-07
打赏
举报
回复
我也想知道帮你
up
up
C
FTP
递归下载文件子目录和子目录
中
的文件:高效下载
FTP
资源利器
C
FTP
递归下载文件子目录和子目录
中
的文件:高效下载
FTP
资源利器 去发现同类优质开源项目:https://gitcode.com/ 项目介绍 C
FTP
递归下载文件子目录和子目录
中
的文件是一个强大的开源工具,利用C#语言编写,为用户提供了一种高效便捷的方式来下载
FTP
服务器上的文件及其所有子目录内的文件。此工具基于Serv-u软件,采用Visual Studio 2008专业版编译,并配备了Win...
C#
WinForm
实战:基于Fluent
FTP
构建
FTP
客户端与断点续传
FTP
协议是网络文件传输的基础,在企业内网数据交换、上位机日志回传等场景
中
应用广泛。C#开发者面对原生
Ftp
WebRequest的陈旧API时,可以借助开源库Fluent
FTP
快速构建功能完整的
FTP
客户端。Fluent
FTP
封装了底层Socket与
FTP
命令,提供现代异步模式,使上传下载、进度回调和断点续传变得简单可靠。在
WinForm
界面
中
,通过Async
Ftp
Client实现不阻塞UI的文件传输,配合重试机制与超时设置,可以应对弱网环境。目录浏览、递归下载等功能的加入,让工控场景下的文件管理更加高效。
WinForm
中
使用Fluent
FTP
实现
FTP
上传下载与断点续传的完整教程
FTP
文件传输是桌面应用开发
中
的经典场景,尤其在 C# 的
WinForm
项目
中
,如何稳定地实现上传、下载和远程目录管理是开发者常遇到的挑战。传统
Ftp
WebRequest 在目录解析、
中
文路径、进度反馈和断点续传等方面需要大量手工代码,维护成本高。Fluent
FTP
作为一款成熟的 .NET
FTP
客户端库,封装了协议细节,提供简洁的 API、进度回调和传输校验能力,是
WinForm
工具型客户端的理想选择。它支持 UTF-8 编码、主动/被动模式自动协商、断点续传与哈希验证,能够满足内网数据回
用C#封装
FTP
客户端:核心代码与避坑指南
FTP
(文件传输协议)是自动化系统间数据交换的基础方式之一,尤其在工业上位机场景
中
,设备报表上传、远程文件同步都离不开它。
FTP
协议基于控制连接与数据连接协作,被动模式是当前网络环境下的主流选择。在.NET平台,
Ftp
WebRequest已封装底层协议,开发者只需处理编码、超时和异常重试即可构建稳定客户端。围绕文件传输、目录扫描等高频需求,用C#封装一个轻量
FTP
客户端类,能灵活适配
WinForm
工具、定时监控和批量同步任务。同时解析
中
文文件名乱码、TLS证书警告、被动模式端口放行等典型坑点,帮助你快速定位
在
WinForm
s 应用程序
中
实现
FTP
文件操作及模式介绍
通过上述示例和解释,我们了解了如何在
WinForm
s 应用程序
中
实现基本的
FTP
操作,包括连接到
FTP
服务器、列出目录和下载文件。同时,我们还介绍了
FTP
的主动模式和被动模式的区别以及它们的应用场景。本文将详细介绍如何在 Windows Forms (
WinForm
s) 应用程序
中
使用
FTP
协议进行文件操作,包括连接到
FTP
服务器、列出目录、下载文件,以及理解
FTP
的主动模式和被动模式。在
FTP
通信
中
,涉及到两个主体:
FTP
服务器和
FTP
客户端。表示使用被动模式,而。
C#
111,128
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章