FileSystem: Can I mount a directory from a different location?

Happy Friday, if it’s already Friday for you.

I have a situation where I’m caching downloaded files. Depending on configuration these might be served to the game from different directories.

While I could fix up all the paths to be fully qualified it would be much easier if I could tell the file system where to find a directory.

Something like:

class VirtualDirectoy : public IPlatformFile {....}
VirtualDirectoy *pNewVD = new VirtualDirectory("cachedirectoryroot");
pNewVD->Mount("Content\Cache");

Seems the IPlatformFile interface supports this functionality but it would be a non trivial amount of work so if something like this exists already pray tell!!

Well yes…

Pak files seem to store paths as an offset from the pack file location at time of build. You specify the mount point when you mount the pak file.

NOTE! This only started working for me after using FPaths::MakeStandardFilename on the mount point, and watchout for \ vs / when trying to load files, you’ll want /