/// <summary> /// 添加文件到日志。 /// </summary> /// <param name="events">事件类型。</param> /// <param name="reason">原因。</param> public static void AddLog(string events, string reason) { Funs.AddLog(events + "\t" + reason + "\t无"); }
/// <summary> /// 添加文件到日志。 /// </summary> /// <param name="events">事件类型。</param> /// <param name="reason">原因。</param> /// <param name="file">相关文件。</param> public static void AddLog(string events, string reason, string file) { Funs.AddLog(events + "\t" + reason + "\t" + file); }
private void tiOpenOutputFolder_Click(object sender, EventArgs e) { Funs.OpenFolderInWindows(pd.OutputFolder); }
private void transduce() { if (lvInputList.Items.Count == 0) { MessageBox.Show("请选择输入文件。"); tbMain.SelectedIndex = 0; return; } //建立输出目录 if (!Funs.CreateFolder(pd.OutputFolder)) { MessageBox.Show("输出文件夹创建失败。", "路径创建失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //建立临时目录 if (!Funs.CreateFolder(pd.TempFolder)) { MessageBox.Show("输出文件夹创建失败。", "路径创建失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } //如果开启自动转换,那么就会创建对应的备份目录。 if (pd.ProcessSourceFileType == 0) { try { Directory.CreateDirectory(pd.FolderForSuccessed); Directory.CreateDirectory(pd.FolderForFailed); } catch { MessageBox.Show("备份文件夹设置不正确,未能创建成功,请重新设置。", "备份文件夹设置失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } //复制PdfToTxt.exe文件过去,如果未能复制成功,则同样提示失败。 if (pd.PdfMode) { //可执行的转换程序。 string exepath = pd.PdfDllFolder + "\\PdfToTxt.exe"; //如果此程序不存在,则从程序中复制过去。 if (!File.Exists(exepath)) { Funs.CopyResourceDataFile(exepath); } //等待复制完成。 Application.DoEvents(); Thread.Sleep(100); //如果仍然不存在,表示复制失败。 if (!File.Exists(exepath)) { MessageBox.Show("PDF转换模块启动失败,请关闭程序重新尝试,如果仍然无法解决,请与技术人员联系。", "转换模块启动失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } tiStart.Enabled = false; tiStop.Enabled = true; tbMain.SelectedIndex = 0; transThread = new Thread(new ThreadStart(processTransducing)); transThread.IsBackground = true; transThread.Start(); }
private void processTransducing() { int transed = 0; while (true) { //这三个时间分别表示当前时间,开始时间和结束时间。 DateTime dt = DateTime.Now; DateTime start = new DateTime(dt.Year, dt.Month, dt.Day, pd.StartTime.Hour, pd.StartTime.Minute, pd.StartTime.Second); DateTime end = new DateTime(dt.Year, dt.Month, dt.Day, pd.EndTime.Hour, pd.EndTime.Minute, pd.EndTime.Second); //只有在开始和结束时间范围内才会开始下一次转换。 if (pd.SupportAutoTransducer && !(dt >= start && dt <= end)) { Thread.Sleep(1); continue; } try { for (int i = 0; i < lvInputList.Items.Count; i++) { if (selectedonly && !lvInputList.Items[i].Checked) { continue; } InputPath ip = lvInputList.Items[i].Tag as InputPath; lvInputList.Items[i].BackColor = Color.LightGray; // process transducing. trans.ProcessInput(ip); lvInputList.Items[i].BackColor = Color.White; ip.LastTranducingTime = DateTime.Now; lvInputList.Items[i].SubItems[2].Text = ip.LastTranducingTime.ToString(); transed += trans.LogList.Count(l => l.LogType == LogType.Success); //处理完成后,把日志添加到日志列表中去。日志存放在trans.LogList中。 for (int j = 0; j < trans.LogList.Count; j++) { TransLog log = trans.LogList[j]; //编号,0.时间,1.事件,2.原因,3.输出文件 lvLogs.Items.Insert(0, new ListViewItem(log.GetStrings())); //Funs.AddLog(log.LogType.ToString(), log.Content, log.Output); Funs.AddLog(log); } } Thread.Sleep(100); Application.DoEvents(); } catch (Exception e1) { Funs.AddLog("TRANS", "NONE", e1.Message); } if (!pd.SupportAutoTransducer || !pd.AutoTransducerAvaliable) { Reset(); MessageBox.Show("转换完成。\n共转换 " + transed + "个文件。", "转换完成", MessageBoxButtons.OK); break; } trans.LogList.Clear(); Application.DoEvents(); Thread.Sleep(pd.getCircleInterval() * 1000); } }