Mountain/IPC/WindServiceHandlers/FileSystem/Managed/
FileExists.rs1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3use std::{path::PathBuf, sync::Arc};
6
7use CommonLibrary::{Environment::Requires::Requires, FileSystem::FileSystemReader::FileSystemReader};
8use serde_json::{Value, json};
9
10use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
11
12pub async fn FileExists(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
13 let path = Arguments
14 .get(0)
15 .ok_or("Missing file path".to_string())?
16 .as_str()
17 .ok_or("File path must be a string".to_string())?;
18
19 let provider:Arc<dyn FileSystemReader> = RunTime.Environment.Require();
20
21 let exists = provider.StatFile(&PathBuf::from(path)).await.is_ok();
22
23 dev_log!("vfs-verbose", "exists: {} = {}", path, exists);
24 Ok(json!(exists))
25}