mirror of
https://github.com/adamhathcock/sharpcompress.git
synced 2026-02-08 13:34:57 +00:00
[PR #989] Add support for empty directory entries in archives #1412
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Original Pull Request: https://github.com/adamhathcock/sharpcompress/pull/989
State: closed
Merged: Yes
Add support for empty directory entries in archives
Summary
Successfully implemented support for adding empty directory entries to archives, addressing the feature request in issue #831.
Completed Tasks
WriteDirectorymethods toIWriterinterface for adding empty directory entriesWriteDirectoryinTarWriter(using EntryType.Directory)WriteDirectoryinZipWriter(using trailing '/' with zero size)GZipWriter(throw NotSupportedException as GZip doesn't support directories)AddDirectoryEntrymethods toIWritableArchiveinterfaceImplementation Details
Public API Additions:
IWriter.WriteDirectory(string directoryName, DateTime? modificationTime)- synchronousIWriter.WriteDirectoryAsync(string directoryName, DateTime? modificationTime, CancellationToken)- asynchronousIWritableArchive.AddDirectoryEntry(string key, DateTime? modified)- add directory to archiveFormat-Specific Behavior:
EntryType.Directorywith size 0, directories end with '/'ZipCompressionMethod.NoneNotSupportedException(format limitation)Backward Compatibility:
All existing functionality preserved. Changes are additive only.
Testing
Usage Example
Original prompt
💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.