GUIとJust Runの2つのモードを持つプログラムがあります。GUI は WPF フォームをロードし、設定を調整できるようにします。一方、Just Run は上記の設定をロードし、ただ...まあ...実行します。
ファイルをバッチ移動するための、栄光に満ちたカスタマイズ可能なツールです。
問題: 「ログ」が終わらない。プログラムが閉じている間も書き込みを続けているように見えるため、ログの終わりが途切れています。
アプリ本体:
public partial class App : Application
{
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
if (!e.Args.Contains("-gui"))
{
Process.SettingsPopulate();
Process.WriteLogHead();
Process.MoveFiles();
Process.WriteLogEnd();
}
else
{
new MainWindow().ShowDialog();
}
this.Shutdown();
}
}
実にシンプル。コマンドラインに -gui がある場合、WPF をロードします...そうでない場合は、実行するだけです。
public static void WriteLogEnd()
{
foreach (var log in from i in Items
where i.Used == false
let build = new StringBuilder()
select build.AppendFormat("{0, -12} > {1} > Not Found", _time, i.FileName))
{
Logs(log);
}
Logs("");
Logs("Fin.");
}
ログは、単純な「コンソールに書き込み、ファイルに書き込む」方法です。処理されたファイルのリストを反復処理し、使用されていないアイテムを見つけます...別名「見つかりません」。リストを終了し、Fin を書き込む前に閉じます。
私は当惑しましたか。WriteLogEnd が終了する前にファイルが閉じないようにするにはどうすればよいですか (とにかく、その前に終了することはできないはずです)。