private void CreateReport(CustomReports.ItemReport itemReport) { BackgroundWorker bw = new BackgroundWorker(); bw.WorkerReportsProgress = true; bw.ProgressChanged += (s, e) => { if (e.UserState != null) { TextBoxMain.Text += e.UserState.ToString() + Environment.NewLine; TextBoxMain.ScrollToEnd(); } }; bw.DoWork += (s, e) => { CustomReports.Program.CreateReport(itemReport); }; bw.RunWorkerCompleted += (s, e) => { if (e.Error != null) { MessageBox.Show(this, e.Error.Message + Environment.NewLine + e.Error.StackTrace, "", MessageBoxButton.OK, MessageBoxImage.Error); } else { MessageBox.Show(this, "Завершено", "", MessageBoxButton.OK, MessageBoxImage.Information); } ButtonClose.IsEnabled = true; Cursor = Cursors.Arrow; if (!string.IsNullOrEmpty(itemReport.FileResult)) { try { string argument = "/select, \"" + itemReport.FileResult + "\""; Process.Start("explorer.exe", argument); } catch (Exception exc) { MessageBox.Show(this, exc.Message, string.Empty, MessageBoxButton.OK, MessageBoxImage.Error); } } }; CustomReports.Logging.bw = bw; bw.RunWorkerAsync(); }
private void FileReader(string[] files, int startIndex, int endIndex) { // 設定ファイルの値読み込み setting = new SettingWindow.Setting(); setting = SettingWindow.LoadSetting(setting); for (int fileIndex = startIndex; fileIndex < endIndex; fileIndex++) { TextBoxMainWrite(); TextBoxMainWrite(files[fileIndex]); // ディレクトリかファイルか判別 if (File.GetAttributes(files[fileIndex]).HasFlag(FileAttributes.Directory)) { // ディレクトリが読み込まれた場合 // ダイアログが埋もれないようにアクティブ化 FormMain.Activate(); string msgText = "フォルダーが読み込まれました。フォルダー内にある全ての.tjaを変換しますか?"; string msgCaption = "警告"; TextBoxMainWrite(); TextBoxMainWrite(msgCaption + ":" + msgText); TextBoxMain.ScrollToEnd(); var result = MessageBox.Show(this, files[fileIndex] + "\r" + msgText, msgCaption, MessageBoxButton.YesNo, MessageBoxImage.Exclamation); // ダイアログでの選択を判別 if (result == MessageBoxResult.Yes) { // はいを選んだ場合 TextBoxMainWrite(); TextBoxMainWrite(">>はい"); // ディレクトリから.tjaファイルを検索(サブディレクトリを含む) var tjaFiles = Directory.EnumerateFiles(files[fileIndex], "*.tja", SearchOption.AllDirectories); if (tjaFiles.Count() >= 1) { // .tjaファイルが1件以上の場合 foreach (string tjaFilePath in tjaFiles) { TextBoxMainWrite(); TextBoxMainWrite(tjaFilePath); OTCConvert(tjaFilePath); } msgText = tjaFiles.Count() + "件の.tjaファイルを変換しました。"; } else { // .tjaファイルが0件の場合 msgText = ".tjaファイルがありませんでした。"; } TextBoxMainWrite(); TextBoxMainWrite(msgText); TextBoxMain.ScrollToEnd(); MessageBox.Show(this, msgText, "情報", MessageBoxButton.OK, MessageBoxImage.Information); } else { // いいえを選んだ場合 TextBoxMainWrite(); TextBoxMainWrite(">>いいえ"); } } else { // ファイルが読み込まれた場合 OTCConvert(files[fileIndex]); System.Media.SystemSounds.Asterisk.Play(); } } TextBoxMainWrite(); TextBoxMainWrite("処理完了"); TextBoxMain.ScrollToEnd(); }