Files
BuildSubversion/Dependencies/Actions.Library/Archive.cs
T
2025-05-13 01:22:44 +03:00

41 lines
1.5 KiB
C#

using System;
using System.Collections.Generic;
using System.IO.Compression;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Formats.Tar;
using SharpCompress.Compressors.BZip2;
using SharpCompress.Archives;
using SharpCompress.Common;
namespace Actions {
public static class Archive {
public static void UnpackTarGz(string archiveFileName, string outDirectory) {
using var fileStream = File.OpenRead(archiveFileName);
using var gzipStream = new GZipStream(fileStream, CompressionMode.Decompress);
TarFile.ExtractToDirectory(gzipStream, outDirectory, true);
}
public static void UnpackTarBz2(string archiveFileName, string outDirectory) {
using var fileStream = File.OpenRead(archiveFileName);
using var bz2Stream = new BZip2Stream(fileStream, SharpCompress.Compressors.CompressionMode.Decompress, false);
TarFile.ExtractToDirectory(bz2Stream, outDirectory, true);
}
public static void UnpackZip(string archiveFileName, string outDirectory) {
using var fileStream = File.OpenRead(archiveFileName);
using var zipArchive = SharpCompress.Archives.Zip.ZipArchive.Open(fileStream);
foreach (var entry in zipArchive.Entries.Where(entry => !entry.IsDirectory)) {
entry.WriteToDirectory(outDirectory, new ExtractionOptions() {
ExtractFullPath = true,
Overwrite = true
});
}
}
}
}