mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-09-24 16:05:27 +00:00
45 lines
1.3 KiB
C#
45 lines
1.3 KiB
C#
using System.IO;
|
|
using System.Linq;
|
|
using System.Threading.Tasks;
|
|
using SharpCompress.Archives;
|
|
using SharpCompress.Common;
|
|
using SharpCompress.Readers;
|
|
using Xunit;
|
|
|
|
namespace SharpCompress.Test;
|
|
|
|
public class ExtractAll : TestBase
|
|
{
|
|
[Theory]
|
|
[InlineData("Zip.deflate.zip")]
|
|
[InlineData("Rar5.rar")]
|
|
[InlineData("Rar.rar")]
|
|
[InlineData("Rar.solid.rar")]
|
|
[InlineData("7Zip.solid.7z")]
|
|
[InlineData("7Zip.nonsolid.7z")]
|
|
[InlineData("7Zip.LZMA.7z")]
|
|
public async Task ExtractAllEntries(string archivePath)
|
|
{
|
|
var testArchive = Path.Combine(TEST_ARCHIVES_PATH, archivePath);
|
|
var options = new ExtractionOptions() { ExtractFullPath = true, Overwrite = true };
|
|
|
|
using var archive = ArchiveFactory.Open(testArchive);
|
|
|
|
if (archive.IsSolid || archive.Type == ArchiveType.SevenZip)
|
|
{
|
|
var reader = archive.ExtractAllEntries();
|
|
while (await reader.MoveToNextEntryAsync())
|
|
{
|
|
if (!reader.Entry.IsDirectory)
|
|
{
|
|
await reader.WriteEntryToDirectoryAsync(SCRATCH_FILES_PATH, options);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
archive.ExtractToDirectory(SCRATCH_FILES_PATH, options);
|
|
}
|
|
}
|
|
}
|