PSMinIO Developer
|
e1da6e92af
|
Add Get-MinIOZipArchive cmdlet and enhance New-MinIOZipArchive with FileInfo parameters
✅ Get-MinIOZipArchive cmdlet - Comprehensive zip reading:
• FileInfo parameter with proper disposal handling using OpenRead
• ZipArchiveInfo result with comprehensive metrics
• ZipEntryInfo array for detailed entry information
• IncludeEntries parameter for detailed file listings
• ValidateIntegrity parameter for archive validation
• Filter parameter for entry name pattern matching
• Proper exception handling and verbose logging
• Always returns objects for pipeline compatibility
✅ Enhanced New-MinIOZipArchive cmdlet:
• FileInfo DestinationPath parameter (was string)
• Removed PassThru parameter - always returns objects
• Consistent parameter naming with aliases
• Improved error handling and validation
• Better integration with PowerShell pipeline
✅ ZipArchiveInfo and ZipEntryInfo classes:
• Comprehensive metrics: size, compression ratio, efficiency
• Time tracking: creation, modification, validation duration
• Entry details: full name, size, compression stats
• Directory detection and space saved calculations
• .NET Standard 2.0 compatibility (removed Crc32)
✅ Enhanced test script:
• FileInfo parameter usage examples
• Get-MinIOZipArchive functionality testing
• Archive information reading and validation
• Detailed entry inspection and filtering
• Integrity validation demonstrations
✅ Architecture improvements:
• Consistent FileInfo usage across zip operations
• Proper disposal handling with using statements
• Thread-safe operations with comprehensive error handling
• Pipeline-friendly object returns
• Enhanced verbose logging and progress tracking
Features: Create zips from FileInfo/DirectoryInfo, read archive info with validation,
detailed entry inspection, integrity checking, and comprehensive metrics.
|
2025-07-11 21:16:21 -04:00 |
|
PSMinIO Developer
|
f420effc84
|
Implement comprehensive zip archive functionality with progress tracking
✅ 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.
|
2025-07-11 21:00:14 -04:00 |
|