public static void Main() { // OutputFormatManagerのディレクトリを // アプリケーションの設定ディレクトリに設定する. var dirs = new List<string>() { Application.StartupPath, Application.CommonAppDataPath, Application.UserAppDataPath }; dirs.ForEach(dir => { var path = Path.Combine(dir, TEMPLATE_DIRNAME); var dirInfo = new PersistentDirectoryInfo(path, false); outputFormatManager.AddDirectory(dirInfo); }); // メインフォームを構築する. Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); // メッセージループを開始する. Application.Run(new EnumFilesForm()); }
/// <summary> /// 指定したディレクトリよりも後方のディレクトリの一覧を取得する. /// 指定したディレクトリが既存のディレクトリリストに存在しない場合、 /// もしくは自身が最後のディレクトリであった場合は、結果は空となります. /// </summary> /// <param name="dirInfo">対象ディレクトリ</param> /// <returns>対象ディレクトリよりも後に定義されているディレクトリの一覧</returns> protected IEnumerable<PersistentDirectoryInfo> GetAfterDirectories(PersistentDirectoryInfo dirInfo) { if (dirInfo == null) throw new ArgumentException("nullは指定できません"); bool outSw = false; foreach (var dir in dirs) { if (outSw) { yield return dir; } else if (dir == dirInfo) { outSw = true; } } }
/// <summary> /// 指定したディレクトリを登録解除する. /// 該当するディレクトリが登録されていなければ何もしない. /// </summary> /// <param name="dir">ディレクトリ、null可</param> public void RemoveDirectory(PersistentDirectoryInfo dir) { if (dir != null) { dirs.Remove(dir); } }
/// <summary> /// 読み込むディレクトリを登録する. /// 登録した順番にディレクトリが読み込まれる. /// </summary> /// <param name="dir">ディレクトリ、null不可</param> public void AddDirectory(PersistentDirectoryInfo dir) { if (dir == null) throw new ArgumentException(); dirs.Add(dir); }