From d1e3877008d9f5ba1befda00449d6f036d4f3923 Mon Sep 17 00:00:00 2001 From: tsuji Date: Wed, 6 Apr 2022 13:30:19 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=BB=E4=BE=8B=E5=A4=96=E5=87=A6=E7=90=86?= =?UTF-8?q?=E3=81=AE=E9=83=A8=E5=88=86=E3=82=92=E9=96=A2=E6=95=B0=E5=8C=96?= =?UTF-8?q?=20=E3=83=BB=E3=83=87=E3=82=A3=E3=83=AC=E3=82=AF=E3=83=88?= =?UTF-8?q?=E3=83=AA=E3=81=AE=E4=BD=9C=E6=88=90/=E5=89=8A=E9=99=A4?= =?UTF-8?q?=E3=82=92=E9=96=A2=E6=95=B0=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Code/CSRender/CSRender/FilePathSelect.cs | 49 ++++++- Code/CSRender/CSRender/MainWindow.xaml.cs | 168 ++++++++-------------- 2 files changed, 107 insertions(+), 110 deletions(-) diff --git a/Code/CSRender/CSRender/FilePathSelect.cs b/Code/CSRender/CSRender/FilePathSelect.cs index c625e48..a98cbef 100644 --- a/Code/CSRender/CSRender/FilePathSelect.cs +++ b/Code/CSRender/CSRender/FilePathSelect.cs @@ -291,5 +291,52 @@ namespace CSRender return inFileName; } - } + private string SelectFileTarget(bool dummyFlag, string targetBoxText, string referenceBoxText, string workBoxText) + { + string dummyFileName = ""; + //対象とリファレンスが同名ファイルであるか確認 + string TarFileName = System.IO.Path.GetFileName(referenceBoxText); + string RefFileName = System.IO.Path.GetFileName(targetBoxText); + if (TarFileName != RefFileName) + { + //指定した作業フォルダ内にダミー用フォルダを設定(無ければ生成) + string dummyDir = System.IO.Path.Combine(workBoxText, "Dummy"); + if (!Directory.Exists(dummyDir)) { Directory.CreateDirectory(dummyDir); } + string dummyTarDir = System.IO.Path.Combine(dummyDir, "Target"); + if (!Directory.Exists(dummyTarDir)) { Directory.CreateDirectory(dummyTarDir); } + string dummyRefDir = System.IO.Path.Combine(dummyDir, "Reference"); + if (!Directory.Exists(dummyRefDir)) { Directory.CreateDirectory(dummyRefDir); } + //ダミーファイルを作成 + dummyFileName = createDummyFile(targetBoxText, dummyTarDir, dummyFileName); + dummyFileName = createDummyFile(referenceBoxText, dummyRefDir, dummyFileName); + dummyFlag = true; + //検版対象をダミーに指定 + targetBoxText = dummyTarDir; + referenceBoxText = dummyRefDir; + } + + return dummyFileName; + } + + //指定のパスにディレクトリが無ければ作成 + private void checkDirPath(string inDirPath) + { + if (!Directory.Exists(inDirPath)) + { + Directory.CreateDirectory(inDirPath);//パスにディレクトリが無ければ作成 + } + + } + + //指定のパスにディレクトリがあれば削除し、新たな同名ディレクトリを作成 + private void DeleteOldDir(string inDirPath) + { + if (Directory.Exists(inDirPath)) + { + Directory.Delete(inDirPath,true);//パスにディレクトリがあれば削除 + } + Directory.CreateDirectory(inDirPath);//同名のディレクトリを作成 + } + + } } diff --git a/Code/CSRender/CSRender/MainWindow.xaml.cs b/Code/CSRender/CSRender/MainWindow.xaml.cs index b4d6df0..6e7c3f6 100644 --- a/Code/CSRender/CSRender/MainWindow.xaml.cs +++ b/Code/CSRender/CSRender/MainWindow.xaml.cs @@ -105,12 +105,18 @@ namespace CSRender private async void CompareButtonClick(object sender, RoutedEventArgs e) { - killButton(); + killButton();//メニューを非活性化 + //各種パスの指定先の取得 string workBoxText = workBox.Text; string reportBoxText = reportBox.Text; string targetBoxText = targetBox.Text; string referenceBoxText = referenceBox.Text; + //検版パラメータの取得 + string shiftPixel = PositionBox.Text; + string colorMargin = GradationBox.Text; + string removePoint = SmallDiffBox.Text; + string shadingOff = VisualBox.Text; //対象フォルダのpathチェック if (!Directory.Exists(targetBoxText) && !File.Exists(targetBoxText)) @@ -122,6 +128,8 @@ namespace CSRender ResultConsole.ScrollToEnd(); Properties.Settings.Default.targetSetting = ""; Properties.Settings.Default.Save(); + + reviveButton();//終了前にメニューを復帰 return; } @@ -135,6 +143,8 @@ namespace CSRender ResultConsole.ScrollToEnd(); Properties.Settings.Default.referenceSetting = ""; Properties.Settings.Default.Save(); + + reviveButton();//終了前にメニューを復帰 return; } @@ -143,27 +153,9 @@ namespace CSRender string dummyFileName = ""; if (File.Exists(referenceBoxText) && File.Exists(targetBoxText)) { - //対象とリファレンスが同名ファイルであるか確認 - string TarFileName = System.IO.Path.GetFileName(referenceBoxText); - string RefFileName = System.IO.Path.GetFileName(targetBoxText); - if(TarFileName != RefFileName) - { - //指定した作業フォルダ内にダミー用フォルダを設定(無ければ生成) - string dummyDir = System.IO.Path.Combine(workBoxText, "Dummy"); - if (!Directory.Exists(dummyDir)) { Directory.CreateDirectory(dummyDir); } - string dummyTarDir = System.IO.Path.Combine(dummyDir, "Target"); - if (!Directory.Exists(dummyTarDir)) { Directory.CreateDirectory(dummyTarDir); } - string dummyRefDir = System.IO.Path.Combine(dummyDir, "Reference"); - if (!Directory.Exists(dummyRefDir)) { Directory.CreateDirectory(dummyRefDir); } - //ダミーファイルを作成 - dummyFileName = createDummyFile(targetBoxText, dummyTarDir, dummyFileName); - dummyFileName = createDummyFile(referenceBoxText, dummyRefDir, dummyFileName); - dummyFlag = true; - //検版対象をダミーに指定 - targetBoxText = dummyTarDir; - referenceBoxText = dummyRefDir; - } + dummyFileName = SelectFileTarget(dummyFlag, targetBoxText, referenceBoxText, workBoxText); } + //出力ファイルpathのチェック if (!Directory.Exists(workBoxText) && !File.Exists(workBoxText)) @@ -176,14 +168,15 @@ namespace CSRender workBox.Text = ""; Properties.Settings.Default.workSpaceSetting = workBoxText; Properties.Settings.Default.Save(); + + reviveButton();//終了前にメニューを復帰 return; } - string workLogPath = System.IO.Path.Combine(workBoxText, "report"); + + string workLogPath = System.IO.Path.Combine(workBoxText, "report");//reportフォルダのパス + checkDirPath(workLogPath);//なければ作成 string outDiffPath = System.IO.Path.Combine(workBoxText, "OUT_DIFF");//DIFF画像の出力先パス - if (!Directory.Exists(outDiffPath)) - { - Directory.CreateDirectory(outDiffPath);//DIFF画像の出力先パスが無ければ作成 - } + checkDirPath(outDiffPath);//なければ作成 bool reportFlag = false; try @@ -193,23 +186,9 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message + "\r\nレポート名を初期化しました。", "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:レポート名の確認" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - reportBox.Text = ""; - checkReportPath(); - //referenceErrorFlag = true; + string WorkCategory = "レポート名の確認"; + ExceptionMessage(ex, workLogPath, WorkCategory); } - - //検版パラメータの取得 - string shiftPixel = PositionBox.Text; - string colorMargin = GradationBox.Text; - string removePoint = SmallDiffBox.Text; - string shadingOff = VisualBox.Text; //RIP処理時間の計測 var ripTime = new System.Diagnostics.Stopwatch(); @@ -232,12 +211,8 @@ namespace CSRender //対象フォルダ string targetTIFFPath = System.IO.Path.Combine(workBoxText, "work", "targetTIFF"); - if (Directory.Exists(targetTIFFPath))//指定先にTIFF用フォルダがあるか - { - Directory.Delete(targetTIFFPath, true);//あれば古いTIFF用フォルダを削除(前回作業時の生成物との混同防止) - } - Directory.CreateDirectory(targetTIFFPath);//新規でTIFF用フォルダを作成 - + DeleteOldDir(targetTIFFPath); //指定先に古いTIFF用フォルダがあれば削除し、新たに作成(前回作業時の生成物との混同防止) + //CSRenderの実行 try { @@ -249,14 +224,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:対象PDFのTIFF画像生成" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - //referenceErrorFlag = true; + string WorkCategory = "対象PDFのTIFF画像生成"; + ExceptionMessage(ex, workLogPath, WorkCategory); } ResultConsole.Text += " リファレンスファイルをTIFF画像に変換中\r\n"; @@ -265,12 +234,8 @@ namespace CSRender //リファレンスフォルダ string referenceTIFFPath = System.IO.Path.Combine(workBoxText, "work", "referenceTIFF"); - if (Directory.Exists(referenceTIFFPath))//指定先にTIFF用フォルダがあるか - { - Directory.Delete(referenceTIFFPath, true);//あれば古いTIFF用フォルダを削除(前回作業時の生成物との混同防止) - } - Directory.CreateDirectory(referenceTIFFPath);//新規でTIFF用フォルダを作成 - + DeleteOldDir(referenceTIFFPath); //指定先に古いTIFF用フォルダがあれば削除し、新たに作成(前回作業時の生成物との混同防止) + //CSRenderの実行 try { @@ -282,14 +247,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:リファレンスPDFのTIFF画像生成" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - //referenceErrorFlag = true; + string WorkCategory = "リファレンスPDFのTIFF画像生成"; + ExceptionMessage(ex, workLogPath, WorkCategory); } ripTime.Stop();//RIP時間の計測終了 @@ -310,13 +269,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:検版レポートの編集" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); + string WorkCategory = "検版レポートの編集"; + ExceptionMessage(ex, workLogPath, WorkCategory); } string workDir = ""; @@ -391,14 +345,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:検版処理" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - //referenceErrorFlag = true; + string WorkCategory = "検版処理"; + ExceptionMessage(ex, workLogPath, WorkCategory); } try @@ -411,14 +359,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:検版ログの出力" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - //referenceErrorFlag = true; + string WorkCategory = "検版ログの出力"; + ExceptionMessage(ex, workLogPath, WorkCategory); } string PDFName = ""; @@ -436,14 +378,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:レポート名の取得" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - //referenceErrorFlag = true; + string WorkCategory = "レポート名の取得"; + ExceptionMessage(ex, workLogPath, WorkCategory); } try @@ -453,14 +389,8 @@ namespace CSRender } catch (Exception ex) { - CustomMsgBox.Show(mainWindow, ex.Message, "例外が発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); - //ログ記述 - DateTime faileTIme = DateTime.Now; - string logText = "[" + faileTIme + "]" + Environment.NewLine; - logText += "例外の生じた処理:ログファイルの移動" + Environment.NewLine; - logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; - File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); - //referenceErrorFlag = true; + string WorkCategory = "ログファイルの移動"; + ExceptionMessage(ex, workLogPath, WorkCategory); } //レポートのパスを表示 @@ -1037,6 +967,8 @@ namespace CSRender ResultConsole.Text += "<変換中止>\r\n"; Properties.Settings.Default.targetSetting = ""; Properties.Settings.Default.Save(); + + reviveButton();//終了前にメニューを復帰 return; } @@ -1052,6 +984,8 @@ namespace CSRender workBox.Text = ""; Properties.Settings.Default.workSpaceSetting = ""; Properties.Settings.Default.Save(); + + reviveButton();//終了前にメニューを復帰 return; } } @@ -1072,6 +1006,22 @@ namespace CSRender Properties.Settings.Default.Save(); } + //例外発生時のメッセージボックス + private void ExceptionMessage(Exception ex, string workLogPath, string inErrorWork) + { + if (!Directory.Exists(workLogPath)) + { + Directory.CreateDirectory(workLogPath); + } + CustomMsgBox.Show(mainWindow, ex.Message, "エラーが発生しました", MessageBoxButton.OK, MessageBoxImage.Warning); + //ログ記述 + DateTime faileTIme = DateTime.Now; + string logText = "[" + faileTIme + "]" + Environment.NewLine; + logText += "例外の生じた処理:" + inErrorWork + Environment.NewLine; + logText += ex.Message + "\n" + ex.StackTrace + Environment.NewLine; + File.AppendAllText(System.IO.Path.Combine(workLogPath, "CSRender.log"), logText); + } + //メニュを明示的に更新する private void DoEvents() { -- 2.22.0