ProjFS

Chrono on crates.io Chrono on docs.rs

See example for more information

Get Start

One should create a struct MyProjFS that implements Sync, ProjFSDirEnum and ProjFSRead in order to get a instance. rust // create root dir to be projected std::fs::create_dir("root_dir").ok(); // create a virtualization instance of MyProjFS // this function returned immediately, and you would like to hold the instance during the projection let instance = start_proj_virtualization("root_dir", Box::new(MyProjFS::new())).unwrap(); std::thread::sleep(std::time::Duration::from_secs(std::u64::MAX)); // once the instance dropped, the projection stopped drop(instance)

Features

See also mircosoft guide here Now we could provide callback functions

Callback series PRJ_*_DIRECTORY_ENUMERATION_CB would be generate by ProjFSDirEnum::dir_iter and ProjFSDirEnum::dir_iter_cache.

Note

Make sure Projected File System is enabled on your machine powershell Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart