From 75e77c53e4d96d52338d1bdf074209870967033a Mon Sep 17 00:00:00 2001 From: Patrick Wuttke Date: Mon, 10 Mar 2025 09:56:26 +0100 Subject: [PATCH] Some more FS fixes. --- source/mijin/virtual_filesystem/filesystem.cpp | 8 +++++--- source/mijin/virtual_filesystem/mapping.hpp | 4 ++++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/source/mijin/virtual_filesystem/filesystem.cpp b/source/mijin/virtual_filesystem/filesystem.cpp index e3060a3..4960d9e 100644 --- a/source/mijin/virtual_filesystem/filesystem.cpp +++ b/source/mijin/virtual_filesystem/filesystem.cpp @@ -54,11 +54,13 @@ std::vector OSFileSystemAdapter::listFiles(const fs::path& folder) info.isHidden = info.path.filename().string().starts_with('.'); // at least for Linux if (info.isFolder) { - MIJIN_TRY + std::error_code errorCode; + fs::directory_iterator dirIt(info.path, errorCode); + if (errorCode != std::error_code{}) { - info.size = std::distance(fs::directory_iterator(info.path), fs::directory_iterator()); + info.size = std::distance(dirIt, fs::directory_iterator()); } - MIJIN_CATCH(std::runtime_error&) + else { info.size = 0; } diff --git a/source/mijin/virtual_filesystem/mapping.hpp b/source/mijin/virtual_filesystem/mapping.hpp index cf8df5c..47c4738 100644 --- a/source/mijin/virtual_filesystem/mapping.hpp +++ b/source/mijin/virtual_filesystem/mapping.hpp @@ -71,6 +71,10 @@ std::vector MappingFileSystemAdapter::listFiles(const fs::pa result = wrapped_.listFiles(adjusted); for (FileInfo& fileInfo : result) { + if (fileInfo.path.is_absolute()) + { + fileInfo.path = fs::relative(fileInfo.path, "/"); + } fileInfo.path = root_ / fileInfo.path; } return result;