using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlTypes;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
using System.Threading;
using System.Runtime.Serialization.Formatters.Binary;
using ICSharpCode.SharpZipLib.Zip;
using ormBLL;
using ormModel;
using NPOI.HSSF.UserModel;
using NPOI.SS.UserModel;
namespace ZJ
{
public partial class Form1 : Form
{
private readonly ormBll1 bLL1;
public Form1()
{
bLL1 = new ormBll1();
InitializeComponent();
CheckForIllegalCrossThreadCalls = false;
}
Thread tOne;
DataTable data = new DataTable();
private void button1_Click(object sender, EventArgs e)
{
//获取文件(可执行文件)
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = @“可执行文件(.txt)|.txt”;
// openFileDialog.Filter = @“可执行文件(.exe)|.exe”;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
//赋值文件地址
textBox1.Text = openFileDialog.FileName;
}
}
private void button2_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog()==DialogResult.OK)
{
textBox2.Text = folderBrowserDialog.SelectedPath;
}
}
private void button3_Click(object sender, EventArgs e)
{
// data.clear() 清空的是表的数据 column 不属于 表的数据
///清空列
data.Columns.Clear();
DataColumn column = new DataColumn("文件名");
data.Columns.Add(column);
DataColumn column1 = new DataColumn("文件大小");
data.Columns.Add(column1);
DataColumn column2 = new DataColumn("文件修改时间");
data.Columns.Add(column2);
FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();
if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
{
DirectoryInfo directoryInfo = new DirectoryInfo(folderBrowserDialog.SelectedPath);
GetFile(directoryInfo);
}
//全局 len
//label3.Text = (len / 1024 / 1024).ToString("0.00") + "M";
dataGridView1.DataSource = data;
}
public void GetFile(DirectoryInfo directory)
{
//获取 directory 目录下的文件
FileInfo[] fileInfo = directory.GetFiles();
foreach (var item in fileInfo)
{
if ((dateTimePicker1.Value.Subtract(item.LastWriteTime).Seconds) > 0)
{
DataRow row = data.NewRow();
row["文件名"] = item.Name;
row["文件大小"] = item.Length;
row["文件修改时间"] = item.LastWriteTime;
//len += (decimal)item.Length;
data.Rows.Add(row);
}
}
//
//获取 directory 目录下的子目录
DirectoryInfo[] dir = directory.GetDirectories();
foreach (var item in dir)
{
//重复上面
GetFile(item);
}
}
/// <summary>
/// 启动线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button10_Click(object sender, EventArgs e)
{
Start();
}
/// <summary>
/// 启动线程
/// </summary>
public void Start()
{
tOne = new Thread(new ParameterizedThreadStart(Threads));
tOne.Start();
}
/// <summary>
/// 进度
/// </summary>
/// <param name="obj"></param>
private void Threads(object msg)
{
for (int i = 0; i <= 10000; i++)
{
textBox3.Text= "第" + i + "条记录同步完成";
decimal d = Convert.ToDecimal(i) / Convert.ToDecimal(10000);
label2.Text = d.ToString("P");
progressBar1.Maximum = 10000;
progressBar1.Minimum = i;
if (label2.Text=="100.00%")
{
MessageBox.Show("线程已经终止");
Closea();
}
}
}
private void button4_Click(object sender, EventArgs e)
{
}
/// <summary>
/// 测试
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button18_Click(object sender, EventArgs e)
{
data.Rows.Clear();
DataColumn column = new DataColumn("文件名");
data.Columns.Add(column);
DataColumn column1 = new DataColumn("文件大小");
data.Columns.Add(column1);
DataColumn column2 = new DataColumn("文件修改时间");
data.Columns.Add(column2);
FolderBrowserDialog folderBrowser = new FolderBrowserDialog();
if (folderBrowser.ShowDialog()==DialogResult.OK)
{
DirectoryInfo directoryInfo = new DirectoryInfo(folderBrowser.SelectedPath);
GetFile1(directoryInfo);
}
dataGridView1.DataSource = data;
}
/// <summary>
/// 测试
/// </summary>
/// <param name="directory"></param>
private void GetFile1(DirectoryInfo directory)
{
FileInfo[] fileInfo = directory.GetFiles();
foreach (FileInfo item in fileInfo)
{
DataRow dataRow = data.NewRow();
dataRow["文件名"] = item.Name;
dataRow["文件大小"] = item.Length;
dataRow["文件修改时间"] = item.LastWriteTime;
data.Rows.Add(dataRow);
}
DirectoryInfo[] directories = directory.GetDirectories();
foreach (var item in directories)
{
GetFile1(item);
}
}
/// <summary>
/// 挂起
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button13_Click(object sender, EventArgs e)
{
if (tOne.ThreadState==System.Threading.ThreadState.Running)
{
tOne.Suspend();
}
}
/// <summary>
/// 恢复线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button11_Click(object sender, EventArgs e)
{
if (tOne.ThreadState==System.Threading.ThreadState.Suspended)
{
tOne.Resume();
}
}
/// <summary>
/// 终止线程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button12_Click(object sender, EventArgs e)
{
Closea();
}
/// <summary>
/// 终止
/// </summary>
private void Closea()
{
if (tOne!=null)
{
tOne.Abort();
}
}
/// <summary>
/// 睡眠
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button4_Click_1(object sender, EventArgs e)
{
Thread.Sleep(5000);
}
/// <summary>
/// 压缩
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button14_Click(object sender, EventArgs e)
{
//压缩
using (ZipFile zip = ZipFile.Create(@"C:\Users\张举\Desktop\test.zip"))
{
zip.BeginUpdate();
zip.SetComment("这是我的压缩包");
//添加一个文件
zip.Add(textBox1.Text);
//添加一个文件夹
zip.Add(textBox2.Text);
//添加文件夹里的文件
zip.Add(textBox3.Text);
zip.CommitUpdate();
}
}
/// <summary>
/// 读取压缩包文件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button19_Click(object sender, EventArgs e)
{
//读取压缩包文件
using (ZipFile zip = new ZipFile(textBox1.Text))
{
foreach (ZipEntry item in zip)
{
Console.WriteLine(item);
}
ZipEntry z1 = zip[0];
dataGridView1.DataSource = z1.Name;
}
}
/// <summary>
/// 简压缩
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button20_Click(object sender, EventArgs e)
{
(new FastZip()).CreateZip(textBox1.Text, textBox2.Text, true, "");
}
/// <summary>
/// 解压
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button15_Click(object sender, EventArgs e)
{
(new FastZip()).ExtractZip(textBox1.Text, textBox2.Text, "");
MessageBox.Show("解压成功");
}
/// <summary>
/// 解压
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button21_Click(object sender, EventArgs e)
{
(new FastZip()).ExtractZip(textBox1.Text, textBox2.Text, "");
MessageBox.Show("解压成功");
}
/// <summary>
/// 显示ORM数据
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button9_Click(object sender, EventArgs e)
{
var list = bLL1.GetList(TxtNickName.Text, string
.IsNullOrWhiteSpace(Txtsex.Text) ? (bool?)null : Txtsex.Text == "男");
dataGridView1.DataSource = list.Select(p => new
{
p.ID,
p.NickName,
Sex = p.Sex ? "男" : "女",
}).ToList();
}
private void Form1_Load(object sender, EventArgs e)
{
}
/// <summary>
/// 查询ORM数据(名称与性别)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button22_Click(object sender, EventArgs e)
{
var list = bLL1.GetList(TxtNickName.Text, string
.IsNullOrWhiteSpace(Txtsex.Text) ? (bool?)null : Txtsex.Text == "男");
dataGridView1.DataSource = list.Select(p => new
{
p.ID,
p.NickName,
Sex = p.Sex ? "男" : "女",
}).ToList();
}
/// <summary>
/// ORM添加(跳转添加页面)
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button5_Click(object sender, EventArgs e)
{
AddOrm add = new AddOrm();
add.ShowDialog();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button6_Click(object sender, EventArgs e)
{
}
/// <summary>
/// 导入EXCEL
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button16_Click(object sender, EventArgs e)
{
//提示用户打开文件
OpenFileDialog fileDialog = new OpenFileDialog();
//excel文件格式
fileDialog.Filter = @"excel文件(*.xls;*.xlsx)|*.xls;*.xlsx";
//文件OK
if (fileDialog.ShowDialog()==DialogResult.OK)
{
//读取excel
using (FileStream stream = new FileStream(fileDialog.FileName, FileMode.Open, FileAccess.Read))
{
//工作溥
HSSFWorkbook workbook = new HSSFWorkbook(stream);
//获取excel文件第一张表
var sheet = workbook.GetSheetAt(0);
//表格
var dt = CreateDataTable();
for (int i = 1; i < sheet.LastRowNum; i++)
{
//获取一行
var row = sheet.GetRow(i);
var dataRow = dt.NewRow();
dataRow["Id"] = row.GetCell(0);
dataRow["ProcessName"] = row.GetCell(1);
dataRow["WorkingSet64"] = row.GetCell(2);
dataRow["BasePriority"] = row.GetCell(3);
}
//传入表中
dataGridView1.DataSource = dt;
}
}
}
/// <summary>
/// 创建表列
/// </summary>
/// <returns></returns>
DataTable CreateDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add("Id");
dt.Columns.Add("ProcessName");
dt.Columns.Add("WorkingSet64");
dt.Columns.Add("BasePriority");
return dt;
}
/// <summary>
/// 导出excel
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button17_Click(object sender, EventArgs e)
{
Dictionary<string, string> cellHeader = new Dictionary<string, string>();
cellHeader.Add("IP", "编号");
cellHeader.Add("ProcessName", "进程名称");
cellHeader.Add("WorkingSet64", "占用内存");
cellHeader.Add("BasePriority", "优先级");
using (var ms=ExcelHelper.EntityListToExcel2003(cellHeader,Process.GetProcesses(),"进程列表"))
{
//提示用户保存文件位置
SaveFileDialog saveFile = new SaveFileDialog();
//Excel格式
saveFile.Filter= @"excel文件(*.xls;xlsx)|*.xls;xlsx";
//默认格式
saveFile.DefaultExt = "xls";
//时间
saveFile.FileName = DateTime.Now.ToString("yyyyMMddHHmmss");
if (saveFile.ShowDialog()==DialogResult.OK)
{
//把内存写到文件流中
using (FileStream stream=new FileStream(saveFile.FileName,FileMode.Open,FileAccess.Write))
{
//获取文件流的长度
var buffer = new byte[ms.Length];
//将内存流中的数据读取到buffer缓冲区
int len = ms.Read(buffer, 0, buffer.Length);
//将缓冲区中的数据写到文件流中
stream.Write(buffer, 0, len);
}
}
}
}
/// <summary>
/// 显示进程
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button23_Click(object sender, EventArgs e)
{
BindData();
}
/// <summary>
/// 获取进程
/// </summary>
private void BindData()
{
//获取目录
var ps = Process.GetProcesses();
//显示
dataGridView1.DataSource = ps.Select(p => new
{
p.Id,
p.ProcessName,
p.WorkingSet64,
p.BasePriority
}).ToList();
}
}
}