Mountain/IPC/WindServiceHandlers/FileSystem/Managed/
FileReaddir.rs1#![allow(non_snake_case, unused_variables, dead_code, unused_imports)]
2
3use std::{path::PathBuf, sync::Arc};
8
9use CommonLibrary::{Environment::Requires::Requires, FileSystem::FileSystemReader::FileSystemReader};
10use serde_json::{Value, json};
11
12use crate::{RunTime::ApplicationRunTime::ApplicationRunTime, dev_log};
13
14pub async fn FileReaddir(RunTime:Arc<ApplicationRunTime>, Arguments:Vec<Value>) -> Result<Value, String> {
15 let path = Arguments
16 .get(0)
17 .ok_or("Missing directory path".to_string())?
18 .as_str()
19 .ok_or("Directory path must be a string".to_string())?;
20
21 let provider:Arc<dyn FileSystemReader> = RunTime.Environment.Require();
22
23 let entries = provider
24 .ReadDirectory(&PathBuf::from(path))
25 .await
26 .map_err(|Error| format!("Failed to read directory: {}", Error))?;
27
28 dev_log!("vfs-verbose", "readdir_legacy: {} ({} entries)", path, entries.len());
29 Ok(json!(entries))
30}