mirror of
https://github.com/Grace-Solutions/PSMinIO.git
synced 2026-07-26 14:58:13 +00:00
f420effc84
✅ ZipArchiveBuilder - Core compression engine: • Built on System.IO.Compression (.NET Standard 2.0 built-in) • Real-time progress tracking with events • Start/end time tracking with duration calculation • Size metrics (compressed/uncompressed) and compression ratios • FileSystemInfo support (FileInfo, DirectoryInfo) • Append support via ZipArchiveMode.Update • Compression efficiency calculations ✅ ZipBuilder - PowerShell integration layer: • ThreadSafeProgressCollector integration • Multi-layer progress tracking (Zip + File levels) • Verbose logging with comprehensive metrics • ZipCreationResult object for PowerShell output • Event-driven progress reporting ✅ New-MinIOZipArchive cmdlet - Well-structured PowerShell interface: • Files parameter set: FileInfo[] support for multiple files • Directory parameter set: DirectoryInfo with recursive options • File filtering: InclusionFilter/ExclusionFilter ScriptBlocks • Compression levels: Optimal, Fastest, NoCompression • Archive modes: Create, Update (for appending) • BasePath parameter for custom entry name control • Force parameter for overwriting existing archives • PassThru parameter for detailed result objects ✅ Advanced features: • Progress tracking: Real-time speed and ETA calculations • Metrics: Compression ratio, space saved, processing time • File filtering: ScriptBlock-based inclusion/exclusion • Path handling: Cross-platform compatibility • Error handling: Comprehensive validation and recovery • Memory efficiency: 80KB buffer for optimal throughput ✅ Integration benefits: • No external dependencies (uses built-in .NET compression) • Thread-safe operations compatible with PSMinIO architecture • Consistent with existing progress tracking patterns • Minimal footprint aligning with project preferences • Enterprise-grade functionality with comprehensive metrics Architecture: Built on System.IO.Compression with custom progress tracking, providing superior zip functionality with PowerShell-native integration.
50 lines
1.8 KiB
XML
50 lines
1.8 KiB
XML
<Project Sdk="Microsoft.NET.Sdk">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>netstandard2.0</TargetFramework>
|
|
<AssemblyName>PSMinIO</AssemblyName>
|
|
<RootNamespace>PSMinIO</RootNamespace>
|
|
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
|
<LangVersion>latest</LangVersion>
|
|
<Nullable>enable</Nullable>
|
|
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
|
<WarningsAsErrors />
|
|
<WarningsNotAsErrors />
|
|
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
|
<DebugType>full</DebugType>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
</PropertyGroup>
|
|
|
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
|
<DefineConstants>TRACE</DefineConstants>
|
|
<DebugType>pdbonly</DebugType>
|
|
<DebugSymbols>true</DebugSymbols>
|
|
<Optimize>true</Optimize>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="PowerShellStandard.Library" Version="5.1.1" />
|
|
<PackageReference Include="System.Text.Json" Version="9.0.0" />
|
|
<PackageReference Include="System.Net.Http" Version="4.3.4" />
|
|
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="4.3.1" />
|
|
<PackageReference Include="System.IO.Compression" Version="4.3.0" />
|
|
<PackageReference Include="System.IO.Compression.ZipFile" Version="4.3.0" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<None Include="Module\PSMinIO\PSMinIO.psd1">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
<None Include="Module\PSMinIO\types\*.ps1xml">
|
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
|
</None>
|
|
</ItemGroup>
|
|
|
|
<!-- Removed automatic copy to avoid file locking issues - use scripts/Quick-Build.ps1 instead -->
|
|
|
|
</Project>
|