diff options
| -rw-r--r-- | crates/shirabe-php-shim/src/fs.rs | 13 | ||||
| -rw-r--r-- | crates/shirabe/src/util/filesystem.rs | 2 |
2 files changed, 10 insertions, 5 deletions
diff --git a/crates/shirabe-php-shim/src/fs.rs b/crates/shirabe-php-shim/src/fs.rs index 0006020a..26ea1fdf 100644 --- a/crates/shirabe-php-shim/src/fs.rs +++ b/crates/shirabe-php-shim/src/fs.rs @@ -189,10 +189,15 @@ impl RecursiveIteratorFileInfo { self.path.to_string_lossy().into_owned() } - pub fn get_size(&self) -> i64 { - std::fs::metadata(&self.path) - .map(|m| m.len() as i64) - .unwrap_or(0) + pub fn get_size(&self) -> anyhow::Result<i64> { + match filesize(&self.path) { + Some(size) => Ok(size), + None => Err(crate::RuntimeException::new(format!( + "SplFileInfo::getSize(): stat failed for {}", + self.path.display() + )) + .into()), + } } fn sub_pathname(&self) -> String { diff --git a/crates/shirabe/src/util/filesystem.rs b/crates/shirabe/src/util/filesystem.rs index 44dddb8c..1a9ab703 100644 --- a/crates/shirabe/src/util/filesystem.rs +++ b/crates/shirabe/src/util/filesystem.rs @@ -856,7 +856,7 @@ impl Filesystem { let mut size: i64 = 0; for file in &ri { if file.is_file() { - size += file.get_size(); + size += file.get_size()?; } } |
