📄 projectexp.cs
字号:
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 + -