using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using WordAnalyze; using Logger = Log.Log; namespace WindowsFormsApp1 { public partial class Form1 : Form { private WordAnalyze.Analyze Analyzer = null; public Form1() { InitializeComponent(); Analyzer = new Analyze(); Logger.Init("log.log"); init_listView(); init_textBox(); } // 初始化显示的列表 private void init_listView() { listView1.View = View.Details; Console.WriteLine(listView1.Columns.Count); // 第一列,文件名 if (0 == listView1.Columns.Count) { listView1.Columns.Add("文件名"); Console.WriteLine(listView1.Columns.Count); } Console.WriteLine(listView1.Columns.Count); listView1.Columns[0].Text = "文件名"; listView1.Columns[0].Width = 200; listView1.Columns[0].TextAlign = HorizontalAlignment.Left; // 第二列,状态 if (1 == listView1.Columns.Count) { listView1.Columns.Add("状态"); } listView1.Columns[1].Text = "状态"; listView1.Columns[1].Width = 50; listView1.Columns[1].TextAlign = HorizontalAlignment.Left; // 第三列,错误信息,成功则忽略 if (2 == listView1.Columns.Count) { listView1.Columns.Add("信息"); } listView1.Columns[2].Text = "信息"; listView1.Columns[2].Width = 300; listView1.Columns[2].TextAlign = HorizontalAlignment.Left; } // 初始化存储文件夹的显示框 private void init_textBox() { textBox1.Enabled = false; } // 开始处理word文档 private void button1_Click(object sender, EventArgs e) { if (fileNames == null || fileNames.Length < 1) { Logger.D("event start, but no file to analyse"); return; } var errString = Analyzer.Application(); if(errString != "") { Logger.E("analyze new word analyze object error happened: {0}", errString); return; } button1.Enabled = false; listview_draw(fileNames); for (int i = 0; i < fileNames.Length; i ++) { execStatus(i); Logger.D("startanalyze with filename({0})", fileNames[i]); if (listView1.Items.Count < i + 1) { Logger.D("analyze with filename({0}) success but item with index({1}) is unexpected", fileNames[i], i); continue; } if (listView1.Items[i].SubItems.Count != 3) { Logger.D("analyze with filename({0}) success but item with index({1}) contain unexpected subitem length({2})", fileNames[i], i, listView1.Items[i].SubItems.Count); continue; } var result = Analyzer.AnalyzeFile(fileNames[i]); string status = "成功"; if (result != "") { status = "失败"; } listView1.Items[i].SubItems[1].Text = status; listView1.Items[i].SubItems[2].Text = result; Logger.D("analyze with filename({0}) success with result({1})", fileNames[i], result); } try { Analyzer.Close(); }catch(System.Exception err) { Logger.E("analyze quit but error happened: {0}", err.Message.ToString()); } button1.Enabled = true; } private void folderBrowserDialog1_HelpRequest(object sender, EventArgs e) { } private void openFileDialog1_FileOk(object sender, CancelEventArgs e) { } private void button2_Click(object sender, EventArgs e) { // 选择文件 OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "doc files (*.doc)|*.doc| docx files (*.docx)|*.docx"; openFileDialog.Multiselect = true; openFileDialog.Title = "选择doc或者docx文件"; if (openFileDialog.ShowDialog() == DialogResult.OK) { fileNames = openFileDialog.FileNames; // 先清空列表,再渲染列表 listview_draw(fileNames); } } private void Form1_Load(object sender, EventArgs e) { } private void listview_draw(string[] fileNames) { listView1.Items.Clear(); for (int i = 0; i < fileNames.Length; i++) { ListViewItem item = new ListViewItem(); item.Text = fileNames[i]; item.SubItems.Add("等待中"); item.SubItems.Add(""); listView1.Items.Add(item); } } private void execStatus(int index) { var item = listView1.Items[index]; item.SubItems[1].Text = "执行中"; } private void listView1_SelectedIndexChanged(object sender, EventArgs e) { } private void button3_Click(object sender, EventArgs e) { FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog(); if(folderBrowserDialog.ShowDialog() == DialogResult.OK) { AimFolder = folderBrowserDialog.SelectedPath; textBox1.Text = AimFolder; Analyzer.SetPath(AimFolder); } } private void textBox1_TextChanged(object sender, EventArgs e) { } } }