-
Notifications
You must be signed in to change notification settings - Fork 8
Open
Description
Summary
Create a new FileSystemEntryKind enum to explicitly classify filesystem entries by their actual type, replacing the current implicit binary classification (File/Directory).
Background
The current FileSystemTypes enum only supports two values:
public enum FileSystemTypes
{
Directory = 1,
File = 2
}This is insufficient to represent:
- Symbolic links (currently filtered silently)
- POSIX special files (block devices, character devices, FIFOs, sockets)
- Unknown or unclassifiable entries
Proposed Enum
namespace ByteSync.Common.Business.Inventories;
[Flags]
public enum FileSystemEntryKind
{
Unknown = 0,
// Primary types (mutually exclusive in practice)
RegularFile = 1 << 0,
Directory = 1 << 1,
Symlink = 1 << 2,
// POSIX special files
BlockDevice = 1 << 3,
CharacterDevice = 1 << 4,
Fifo = 1 << 5,
Socket = 1 << 6,
// Convenience masks
SpecialPosix = BlockDevice | CharacterDevice | Fifo | Socket,
NonTransferable = SpecialPosix | Symlink
}Acceptance Criteria
- Create
FileSystemEntryKindenum inByteSync.Common.Business.Inventories - Use
[Flags]attribute for combinable values - Include convenience masks (
SpecialPosix,NonTransferable) - Add XML documentation for each value
- Ensure enum values don't conflict with existing
FileSystemTypes
Technical Notes
- This enum is for classification, not for replacing
FileSystemTypesin existing models FileSystemTypesremains for inventory part type (root is file vs directory)FileSystemEntryKindis used during inspection/filtering decisions- The
[Flags]design allows checking categories:kind.HasFlag(FileSystemEntryKind.SpecialPosix)
Priority
Important — Foundation for improved file classification system.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels