⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ftpform.cs

📁 客户端源码
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using System.IO;

namespace FTP
{
    public partial class FtpForm : Form
    {
        private WebConfig wc;
        private clsFTP ftp;
        private ListViewItem lvItem;
        private ColumnHeader column;
        private System.Collections.Specialized.StringCollection folder=new System.Collections.Specialized.StringCollection();
        public FtpForm()
        {
            InitializeComponent();
        }

        private void tsConfig_Click(object sender, EventArgs e)
        {
            if (wc == null) 
            {
                wc = new WebConfig();
                if (wc.ShowDialog() == DialogResult.OK)
                {
                    ftp = new clsFTP(new Uri(wc.tbAddress.Text), wc.tbUser.Text, wc.tbPassword.Text);
                    folder.Add(ftp.Uri.ToString());
                    Thread thread = new Thread(new ThreadStart(FilllvRemote));
                    thread.Start();
                    this.tsStatus.Text = ftp.Uri.ToString();
                    this.tsDirectory.Text = ftp.Uri.ToString();

                }
            }
        }
        private void FilllvRemote()
        {
            this.lvRemoteFiles.Items.Clear();
            FileStruct[] files = ftp.ListFilesAndDirectories();
            ListViewItem.ListViewSubItem lvSub;
            foreach (FileStruct file in files)
            {
                lvItem = new ListViewItem(file.Name.ToString());
                lvSub = new ListViewItem.ListViewSubItem();
                lvSub.Text = file.Owner.ToString();
                lvItem.SubItems.Add(lvSub);
                lvSub = new ListViewItem.ListViewSubItem();
                lvSub.Text = file.Flags.ToString();
                lvItem.SubItems.Add(lvSub);
                lvSub = new ListViewItem.ListViewSubItem();
                lvSub.Text = file.CreateTime.ToString();
                lvItem.SubItems.Add(lvSub);
                this.lvRemoteFiles.Items.Add(lvItem);
            }
        }

        private void FtpForm_Load(object sender, EventArgs e)
        {
            System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = false;
            this.lvLocalFiles.View = View.List;
            this.lvRemoteFiles.View = View.Details;
            AddColumn();
            DriveInfo[] drive = DriveInfo.GetDrives();
            foreach (DriveInfo dr in drive)
            {
                this.cbLocalDrives.Items.Add(dr.Name.ToString());
                this.cbLocalDrives.Text = drive[0].Name.ToString();
            }
            Thread thread = new Thread(new ThreadStart(FilllvLocal));
            thread.Start();
        }
        private void FilllvLocal()
        {
            string[] dirs = Directory.GetDirectories(this.cbLocalDrives.Text);
            string[] files = Directory.GetFiles(this.cbLocalDrives.Text);
            List<string> list = new List<string>();
            list.AddRange(dirs);
            list.AddRange(files);
            foreach (string s in list.ToArray())
            {
                this.lvLocalFiles.Items.Add(new ListViewItem(s));
            }
        }

        private void cbLocalDrives_SelectionChangeCommitted(object sender, EventArgs e)
        {
            this.lvLocalFiles.Items.Clear();
            Thread thread = new Thread(new ThreadStart(FilllvLocal));
            thread.Start();
        }
        private void AddColumn()
        {
            column = new ColumnHeader();
            column.Text = "文件名";
            column.Width = 150;
            this.lvRemoteFiles.Columns.Add(column);
            column = new ColumnHeader();
            column.Text = "权限";
            column.Width = 50;
            this.lvRemoteFiles.Columns.Add(column);
            column = new ColumnHeader();
            column.Text = "类型";
            column.Width = 80;
            this.lvRemoteFiles.Columns.Add(column);
            column = new ColumnHeader();
            column.Text = "创建时间";
            column.Width = 100;
            this.lvRemoteFiles.Columns.Add(column);
        }

        private void tsOpen_Click(object sender, EventArgs e)
        {
            string str = this.lvRemoteFiles.SelectedItems[0].Text;
            ftp.GotoDirectory(str);
            folder.Add(ftp.Uri.ToString());
            this.tsDirectory.Text = ftp.Uri.ToString();
            Thread thread = new Thread(new ThreadStart(FilllvRemote));
            thread.Start();          
        }

        private void tsBack_Click(object sender, EventArgs e)
        {
            if (folder.Count > 1)
            {
                folder.RemoveAt(folder.Count - 1);
                ftp.Uri = new Uri(folder[folder.Count - 1].ToString());
            }
            this.tsDirectory.Text = ftp.Uri.ToString();
            Thread thread = new Thread(new ThreadStart(FilllvRemote));
            thread.Start();
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -