interpolate_csidl_path

Function interpolate_csidl_path 

Source
pub fn interpolate_csidl_path(
    pth: &mut str,
    env_vars: &UserEnvVars,
) -> Option<String>
Expand description

Interpolates paths that contains a CSIDL

use forensic_rs::core::UserEnvVars;
use forensic_rs::utils::win::csidl::interpolate_csidl_path;
let env_vars = {
let mut map = UserEnvVars::new();
map.insert("APPDATA".into(), "C:\\ProgramData".into());
map.insert("LOCALAPPDATA".into(), "%USERPROFILE%\\AppData\\Local".into());
map.insert("ProgramFiles".into(), "C:\\Program Files".into());
map.insert("USERPROFILE".into(), "C:\\Users\\tester".into());
map
};
// CSIDL {B2C5E279-7ADD-439F-B28C-C41FE1BBF672} = %LOCALAPPDATA%\Desktop = %USERPROFILE%\\AppData\\Local\Desktop = C:\Users\tester\AppData\Local\Desktop
let mut pth = r"{B2C5E279-7ADD-439F-B28C-C41FE1BBF672}\Electronic Arts\EA Desktop\EA Desktop\EADesktop.exe".to_string();
let interpolated = interpolate_csidl_path(&mut pth, &env_vars).unwrap();
assert_eq!(r"C:\Users\tester\AppData\Local\Desktop\Electronic Arts\EA Desktop\EA Desktop\EADesktop.exe", interpolated);