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