@@ -43,32 +43,34 @@ constexpr std::string_view kFileAttributeUnpinned = "FILE_ATTRIBUTE_UNPINNED";
43
43
constexpr std::string_view kFileAttributeRecallOnOpen = " FILE_ATTRIBUTE_RECALL_ON_OPEN" ;
44
44
constexpr std::string_view kFileAttributeRecallOnDataAccess = " FILE_ATTRIBUTE_RECALL_ON_DATA_ACCESS" ;
45
45
constexpr std::string_view kFileAttributeStrictlySequential = " FILE_ATTRIBUTE_STRICTLY_SEQUENTIAL" ;
46
+ constexpr std::string_view kFileAttributeCascadesRemote = " FILE_ATTRIBUTE_CASCADES_REMOTE" ;
46
47
48
+ // Letters are from 'attrib' then 'propsys.dll' or guessed
47
49
constexpr std::array kFileAttributes = {
48
50
std::tuple {FileAttribute::kFileAttributeReadOnly , kFileAttributeReadOnly , ' R' },
49
51
std::tuple {FileAttribute::kFileAttributeHidden , kFileAttributeHidden , ' H' },
50
52
std::tuple {FileAttribute::kFileAttributeSystem , kFileAttributeSystem , ' S' },
51
- std::tuple {FileAttribute::kFileAttributeDirectory , kFileAttributeDirectory , ' D' },
53
+ std::tuple {FileAttribute::kFileAttributeDirectory , kFileAttributeDirectory , ' D' }, // propsys
52
54
std::tuple {FileAttribute::kFileAttributeArchive , kFileAttributeArchive , ' A' },
53
- std::tuple {FileAttribute::kFileAttributeDevice , kFileAttributeDevice , ' d' },
54
- std::tuple {FileAttribute::kFileAttributeNormal , kFileAttributeNormal , ' N' },
55
- std::tuple {FileAttribute::kFileAttributeTemporary , kFileAttributeTemporary , ' T' },
56
- std::tuple {FileAttribute::kFileAttributeSparseFile , kFileAttributeSparseFile , ' P ' },
57
- std::tuple {FileAttribute::kFileAttributeReparsePoint , kFileAttributeReparsePoint , ' L' },
58
- std::tuple {FileAttribute::kFileAttributeCompressed , kFileAttributeCompressed , ' C' },
55
+ std::tuple {FileAttribute::kFileAttributeDevice , kFileAttributeDevice , ' d' }, // 'X' (propsys)
56
+ std::tuple {FileAttribute::kFileAttributeNormal , kFileAttributeNormal , ' N' }, // propsys
57
+ std::tuple {FileAttribute::kFileAttributeTemporary , kFileAttributeTemporary , ' T' }, // propsys
58
+ std::tuple {FileAttribute::kFileAttributeSparseFile , kFileAttributeSparseFile , ' p ' }, // 'P' (propsys)
59
+ std::tuple {FileAttribute::kFileAttributeReparsePoint , kFileAttributeReparsePoint , ' L' }, // propsys
60
+ std::tuple {FileAttribute::kFileAttributeCompressed , kFileAttributeCompressed , ' C' }, // propsys
59
61
std::tuple {FileAttribute::kFileAttributeOffline , kFileAttributeOffline , ' O' },
60
62
std::tuple {FileAttribute::kFileAttributeNotContentIndexed , kFileAttributeNotContentIndexed , ' I' },
61
- std::tuple {FileAttribute::kFileAttributeEncrypted , kFileAttributeEncrypted , ' E' },
63
+ std::tuple {FileAttribute::kFileAttributeEncrypted , kFileAttributeEncrypted , ' E' }, // propsys
62
64
std::tuple {FileAttribute::kFileAttributeIntegrityStream , kFileAttributeIntegrityStream , ' s' },
63
65
std::tuple {FileAttribute::kFileAttributeVirtual , kFileAttributeVirtual , ' V' },
64
66
std::tuple {FileAttribute::kFileAttributeNoScrubData , kFileAttributeNoScrubData , ' B' },
65
67
std::tuple {FileAttribute::kFileAttributeEA , kFileAttributeEA , ' e' },
66
68
std::tuple {FileAttribute::kFileAttributePinned , kFileAttributePinned , ' p' },
67
69
std::tuple {FileAttribute::kFileAttributeUnpinned , kFileAttributeUnpinned , ' u' },
68
- std::tuple {FileAttribute::kFileAttributeRecallOnOpen , kFileAttributeRecallOnOpen , ' o' },
69
- std::tuple {FileAttribute::kFileAttributeRecallOnDataAccess , kFileAttributeRecallOnDataAccess , ' a ' },
70
- std::tuple {FileAttribute::kFileAttributeStrictlySequential , kFileAttributeStrictlySequential , ' l ' }
71
- };
70
+ // std::tuple {FileAttribute::kFileAttributeRecallOnOpen, kFileAttributeRecallOnOpen, 'o'},
71
+ std::tuple {FileAttribute::kFileAttributeRecallOnDataAccess , kFileAttributeRecallOnDataAccess , ' M ' }, // propsys
72
+ std::tuple {FileAttribute::kFileAttributeStrictlySequential , kFileAttributeStrictlySequential , ' B ' },
73
+ std::tuple {FileAttribute:: kFileAttributeCascadesRemote , kFileAttributeCascadesRemote , ' c ' } };
72
74
73
75
bool HasInvalidFlag (uint32_t flags)
74
76
{
0 commit comments