lukas-heiligenbrunner
600c2057fe
load build data to graph redesign top info tiles place add button on header folder restructure
18 lines
501 B
Rust
18 lines
501 B
Rust
use std::path::PathBuf;
|
|
use std::{fs, io};
|
|
|
|
pub fn dir_size(path: impl Into<PathBuf>) -> io::Result<u64> {
|
|
fn dir_size(mut dir: fs::ReadDir) -> io::Result<u64> {
|
|
dir.try_fold(0, |acc, file| {
|
|
let file = file?;
|
|
let size = match file.metadata()? {
|
|
data if data.is_dir() => dir_size(fs::read_dir(file.path())?)?,
|
|
data => data.len(),
|
|
};
|
|
Ok(acc + size)
|
|
})
|
|
}
|
|
|
|
dir_size(fs::read_dir(path.into())?)
|
|
}
|