Files On-Demand

Windows 10 version 1709 (or “Fall Creators Update”) has introduced the “Files On-Demand” feature, only for NTFS physical drives.

The first and most visible sample of this is OneDrive, but the technology is not reserved to OneDrive.

Users can see all their files stored on OneDrive from within the Windows Explorer, without having to first download these files. On this screenshot we can see an Image folder (note it’s a physical path) that contains 3 files:

Files On-Demand - Picture 17

The Status column is added automatically by the Windows Shell because it knows this folder is special (in fact, it’s the OneDrive root folder which is marked as a “sync root”). This column displays an icon that correspond to the sync state of the Shell Item. This icon column exists for items and folders. When the item is selected we can also see its status as a text “Available when online” here. For folder items, the meaning is different, it represents the combined state of child items.

The first two files are in sync, they exist locally. The third “small.mp4” file exists on the Internet (represented by a “cloud” icon) but is not present locally.

In fact, what happens is there is a “small.mp4” file that exists physically in the folder. You can even see it using a Windows command line “dir” command. But this file is just a “placeholder”. It has the correct dates and size, but it’s content does not exist physically on the hard drive. It will be downloaded as soon as any application will try to read it. In this case, Windows will ask the sync provider (OneDrive in this case) for the file’s content. If OneDrive doesn’t run at that time, Windows will display an error message.

Although this technology is not strictly related to Shell Namespace Extension development (in fact, it’s not even related to the Shell, it operates at a lower Windows level), ShellBoost provides some exclusive support for it, in combination with Shell Namespace Extension development, through the OnDemandSynchronizer class.

This feature is demonstrated in the AmalgaDrive Sample.