Ok, well this is interesting. It seems to be a feature of Windows. It will filter out some attributes so they aren’t visible to certain applications.
See this for more info:
Relevant section:
The good news is it is possible to override this filtering. Here’s a demonstration of the filtering and then overriding it:
Click to expand to make it easier to read…here’s a summary:
-
First test (line 2) uses PowerShell natively. Value returned is 0x501620
-
Second test (line 4) uses a custom C# program to call that same GetAttributes method. Value returned is 0x500020. 0x1000 (Offline), 0x400 (Reparse Point), and 0x200 (Sparse File) are filtered out. Duplicati also experiences this same filtering.
-
Third test (line 7) uses another custom C# program to show current “Placeholder Compatibility Mode” and the file attributes it sees. It then changes the Compatibility mode to
PHCM_EXPOSE_PLACEHOLDERS
per the MS link above and tests attributes again. You can see the filtering is turned off and the program now sees the Offline, Reparse, and Sparse attributes.
All I think we need to do in Duplicati is implement this same adjustment so it can see the true file attributes.