我想在代碼中連接ftp目錄﹐向里面添加文件﹐然后斷開。使程序關閉后不能訪問ftp目錄.
程序是運行在工作站的Windows程序﹐ftp目錄在局域網的服務器上﹐(出于安全﹐不方便用直接共享)
請問有方法解決嗎﹖

解决方案 »

  1.   

    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