/* ----------------------------------------------------------------- */
        ///
        /// 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;
        }