我想在代碼中連接ftp目錄﹐向里面添加文件﹐然后斷開。使程序關閉后不能訪問ftp目錄.
程序是運行在工作站的Windows程序﹐ftp目錄在局域網的服務器上﹐(出于安全﹐不方便用直接共享)
請問有方法解決嗎﹖
程序是運行在工作站的Windows程序﹐ftp目錄在局域網的服務器上﹐(出于安全﹐不方便用直接共享)
請問有方法解決嗎﹖
解决方案 »
- 如何在Gridview中某一列所有数据行都加入空格
- DataGridView DGV与 ACCESS的数据库绑定后,如何修改DGV后按个按钮更新到数据库??
- 求助高手帮忙讲解一下这段代码
- directx,想把动画画到一个多媒体应用的一个图形区域,不用directx画窗口,行不?
- 大家好..我是来自己广东中山的..以后的日子大家多关照..我有个问题不明白..
- [每题15分,共4个问题]关于进程的问题
- 请大侠帮忙,Form中编辑框焦点跳转问题
- 网络高手请进,如何用C#实现windows Xp那种修复IP的功能?
- c#如何显示本机的IP地址?
- web server?
- C#如何和并口通讯啊?
- 如何获取excel当前接受输入的cells的行,列值?
环境: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