/* ----------------------------------------------------------------- */ /// /// GetFormat /// /// <summary> /// 圧縮フォーマットを取得します。 /// </summary> /// /* ----------------------------------------------------------------- */ private Format GetFormat() { var f = Request.Format; switch (f) { case Format.Tar: case Format.Zip: case Format.SevenZip: case Format.Sfx: RtSettings = new ArchiveRtSettings(f, Settings.IO); break; case Format.BZip2: case Format.GZip: case Format.XZ: RtSettings = new ArchiveRtSettings(Format.Tar, Settings.IO) { CompressionMethod = f.ToMethod() }; break; default: RaiseRtSettingsRequested(); break; } return(RtSettings.Format); }
/* ----------------------------------------------------------------- */ /// /// RaiseRtSettingsRequested /// /// <summary> /// RuntimeSettingsRequested イベントを発生させます。 /// </summary> /// /* ----------------------------------------------------------------- */ private void RaiseRtSettingsRequested() { var info = IO.Get(Request.Sources.First()); var path = IO.Combine(info.DirectoryName, $"{info.NameWithoutExtension}.zip"); var e = new QueryEventArgs <string, ArchiveRtSettings>(path, true); RtSettingsRequested?.Invoke(this, e); if (e.Cancel) { throw new OperationCanceledException(); } RtSettings = e.Result; }