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

📄 projectexp.cs

📁 通过数据库结构自动 生成三层结构代码,相当不错的一款软件
💻 CS
📖 第 1 页 / 共 2 页
字号:
namespace Codematic
{
    using LTP.CmConfig;
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Drawing;
    using System.IO;
    using System.Resources;
    using System.Windows.Forms;
    using WiB.Pinkie.Controls;

    public class ProjectExp : Form
    {
        private ButtonXP btn_Cancle;
        private ButtonXP btn_ProFold;
        private ButtonXP btn_Set;
        private ButtonXP btn_TargetFold;
        private ButtonXP btnExp;
        private IContainer components;
        private ArrayList filearrlist1 = new ArrayList();
        private ArrayList filearrlist2 = new ArrayList();
        private ArrayList folderarrlist = new ArrayList();
        private GroupBox groupBox1;
        private GroupBox groupBox2;
        private ImageList imageList1;
        private Label label1;
        private Label label2;
        private ListView listView1;
        private ProgressBar progressBar1;
        public static ProSettings setting = new ProSettings();
        private StatusBar statusBar1;
        private StatusBarPanel statusBarPanel1;
        private TextBox textBox1;
        private TextBox textBox2;

        public ProjectExp()
        {
            this.InitializeComponent();
        }

        private void AddListItem(string SourceDirectory)
        {
            DirectoryInfo info = new DirectoryInfo(SourceDirectory);
            if (info.Exists)
            {
                DirectoryInfo[] directories = info.GetDirectories();
                for (int i = 0; i < directories.Length; i++)
                {
                    ListViewItem item = new ListViewItem("", 0);
                    string name = directories[i].Name;
                    item.SubItems.Add(name);
                    item.Checked = true;
                    this.listView1.Items.AddRange(new ListViewItem[] { item });
                }
            }
        }

        private void btn_Cancle_Click(object sender, EventArgs e)
        {
            base.Close();
        }

        private void btn_ProFold_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            if (dialog.ShowDialog(this) == DialogResult.OK)
            {
                this.textBox1.Text = dialog.SelectedPath;
                this.listView1.Items.Clear();
                this.AddListItem(this.textBox1.Text.Trim());
            }
        }

        private void btn_Set_Click(object sender, EventArgs e)
        {
            ProjectSet set = new ProjectSet();
            if (set.ShowDialog(this) == DialogResult.OK)
            {
                this.LoadData();
            }
        }

        private void btn_TargetFold_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            if (dialog.ShowDialog(this) == DialogResult.OK)
            {
                this.textBox2.Text = dialog.SelectedPath;
            }
        }

        private void btnExp_Click(object sender, EventArgs e)
        {
            string path = this.textBox1.Text.Trim();
            string str2 = this.textBox2.Text.Trim();
            if (path == "")
            {
                MessageBox.Show("请选择项目!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else if (str2 == "")
            {
                MessageBox.Show("请选择输出目录!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
            else
            {
                try
                {
                    DirectoryInfo info = new DirectoryInfo(path);
                    DirectoryInfo info2 = new DirectoryInfo(str2);
                    if (!info.Exists)
                    {
                        MessageBox.Show("源目录不存在!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                        return;
                    }
                    if (!info2.Exists)
                    {
                        try
                        {
                            info2.Create();
                        }
                        catch
                        {
                            MessageBox.Show("目标目录不存在!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                            return;
                        }
                    }
                }
                catch
                {
                    MessageBox.Show("目录信息有误!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
                    return;
                }
                setting.SourceDirectory = path;
                setting.TargetDirectory = str2;
                ProConfig.SaveSettings(setting);
                if ((path != "") && (str2 != ""))
                {
                    this.GetSelFolder();
                    this.CopyDirectory(path, str2);
                }
                this.progressBar1.Value = 0;
                this.statusBarPanel1.Text = "就绪";
                MessageBox.Show("项目成功导出!", "完成", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
            }
        }

        public void CopyDirectory(string SourceDirectory, string TargetDirectory)
        {
            DirectoryInfo info = new DirectoryInfo(SourceDirectory);
            DirectoryInfo info2 = new DirectoryInfo(TargetDirectory);
            if (info.Exists)
            {
                if (!info2.Exists)
                {
                    info2.Create();
                }
                FileInfo[] files = info.GetFiles();
                int length = files.Length;
                this.progressBar1.Maximum = length;
                for (int i = 0; i < length; i++)
                {
                    this.progressBar1.Value = i;
                    if (setting.Mode == "Filter")
                    {
                        if (this.IsHasitem(files[i].Extension, this.filearrlist1))
                        {
                            File.Copy(files[i].FullName, info2.FullName + @"\" + files[i].Name, true);
                        }
                    }
                    else if (!this.IsHasitem(files[i].Extension, this.filearrlist2))
                    {
                        File.Copy(files[i].FullName, info2.FullName + @"\" + files[i].Name, true);
                    }
                    this.statusBarPanel1.Text = files[i].FullName;
                }
                DirectoryInfo[] directories = info.GetDirectories();
                for (int j = 0; j < directories.Length; j++)
                {
                    if ((directories[j].Parent.FullName != this.textBox1.Text.Trim()) || this.IsHasitem(directories[j].FullName, this.folderarrlist))
                    {
                        this.CopyDirectory(directories[j].FullName, info2.FullName + @"\" + directories[j].Name);
                    }
                }
            }
        }

        private void CreatListView()
        {
            this.listView1.Columns.Clear();
            this.listView1.Items.Clear();
            this.listView1.View = View.Details;
            this.listView1.GridLines = true;
            this.listView1.FullRowSelect = true;
            this.listView1.CheckBoxes = true;
            this.listView1.Columns.Add("导出", 50, HorizontalAlignment.Left);
            this.listView1.Columns.Add("文件夹名称", 200, HorizontalAlignment.Left);
        }

        protected override void Dispose(bool disposing)
        {
            if (disposing && (this.components != null))
            {
                this.components.Dispose();
            }
            base.Dispose(disposing);
        }

        private void GetSelFolder()
        {
            string str = this.textBox1.Text.Trim();
            foreach (ListViewItem item in this.listView1.Items)
            {
                if (item.Checked)
                {
                    string str2 = str + @"\" + item.SubItems[1].Text;
                    this.folderarrlist.Add(str2);
                }
            }
        }

        private void InitializeComponent()

⌨️ 快捷键说明

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