Пример #1
0
        public int Extract_Lite(string filename)
        {
            var src    = GetExamplesWith(filename);
            var dest   = GetResultsWith(nameof(Extract_Lite), filename);
            var report = CreateReport();

            using (var obj = new ArchiveReader(src)) obj.Extract(dest, Create(report));
            return(report[ReportStatus.End]);
        }
Пример #2
0
        /* ----------------------------------------------------------------- */
        ///
        /// ExtractCore
        ///
        /// <summary>
        /// 展開処理を実行します。
        /// </summary>
        ///
        /// <remarks>
        /// ArchiveItem.Extract は、入力されたパスワードが間違っていた場合
        /// には EncryptionException を送出し、ユーザがパスワード入力を
        /// キャンセルした場合には UserCancelException を送出します。
        /// ここでは、EncryptionException が送出された場合には再実行し、
        /// ユーザに再度パスワード入力を促しています。
        /// </remarks>
        ///
        /* ----------------------------------------------------------------- */
        private void ExtractCore(ArchiveReader src, IProgress <Report> progress)
        {
            var retry = false;

            do
            {
                try
                {
                    src.Extract(Tmp, progress);
                    retry = false;
                }
                catch (EncryptionException /* err */) { retry = true; }
            }while (retry);
        }
        public void Extract_Filters()
        {
            var src  = GetExamplesWith("SampleFilter.zip");
            var dest = GetResultsWith(nameof(Extract_Filters));

            using (var archive = new ArchiveReader(src))
            {
                archive.Filters = new[] { ".DS_Store", "Thumbs.db", "__MACOSX", "desktop.ini" };
                archive.Extract(dest);
            }

            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用")), Is.True);
            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用\.DS_Store")), Is.False);
            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用\desktop.ini")), Is.False);
            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用\DS_Store.txt")), Is.True);
            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用\Thumbs.db")), Is.False);
            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用\__MACOSX")), Is.False);
            Assert.That(IO.Exists(IO.Combine(dest, @"フィルタリング テスト用\フィルタリングされないファイル.txt")), Is.True);
        }
Пример #4
0
        public void Extract(string filename, string password) => IgnoreCultureError(() =>
        {
            var src    = GetExamplesWith(filename);
            var dest   = GetResultsWith(nameof(Extract), filename);
            var report = CreateReport();

            using (var obj = new ArchiveReader(src, password)) obj.Extract(dest, Create(report));

            foreach (var cmp in Expect(filename))
            {
                var fi = IO.Get(IO.Combine(dest, cmp.Key));

                Assert.That(fi.Exists, Is.True, cmp.Key);
                Assert.That(fi.Length, Is.EqualTo(cmp.Value), cmp.Key);
                Assert.That(fi.CreationTime, Is.Not.EqualTo(DateTime.MinValue), cmp.Key);
                Assert.That(fi.LastWriteTime, Is.Not.EqualTo(DateTime.MinValue), cmp.Key);
                Assert.That(fi.LastAccessTime, Is.Not.EqualTo(DateTime.MinValue), cmp.Key);
            }
        }, $"{filename}, {password}");
 public void Extract_Test(string filename, string password) => IgnoreCultureError(() =>
 {
     var src = GetExamplesWith(filename);
     using (var obj = new ArchiveReader(src, password)) obj.Extract();
 }, $"{filename}, {password}");