From 4eeafafe34c7007389594027e9b93da78a86bdde Mon Sep 17 00:00:00 2001 From: GeorgH93 Date: Mon, 17 May 2021 00:10:20 +0200 Subject: [PATCH] Fix issues with not existing dirs for MultiPartArchiveWriter --- openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.cpp | 6 +++++- openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.hpp | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.cpp b/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.cpp index fb09eec..5237304 100644 --- a/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.cpp +++ b/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.cpp @@ -18,7 +18,7 @@ namespace openVulkanoCpp : m_fileSizeLimit(sizeLimit), m_archiveId(0), m_archiveConfig(archiveConfiguration) , m_dir(dir), m_fileNamePattern(fileNamePattern), m_logger(logger) { - if (!std::filesystem::exists(m_dir)) + if (!m_dir.empty() && !std::filesystem::exists(m_dir)) { std::filesystem::create_directories(m_dir); } @@ -72,6 +72,10 @@ namespace openVulkanoCpp { bool hasToMove = m_archives.size() > 1 || m_writer->GetTotalWrittenBytes() > 0; m_writer = nullptr; // Close current archive + if (!newDir.empty() && !std::filesystem::exists(newDir)) + { + std::filesystem::create_directories(newDir); + } if (hasToMove) { // Move all existing archives std::vector newArchivePaths; diff --git a/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.hpp b/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.hpp index 8f1fee0..95c284a 100644 --- a/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.hpp +++ b/openVulkanoCpp/IO/Archive/MultiPartArchiveWriter.hpp @@ -44,6 +44,6 @@ namespace openVulkanoCpp void Move(const std::filesystem::path& newDir); - const std::filesystem::path& GetDir() const { return m_dir; } + [[nodiscard]] const std::filesystem::path& GetDir() const { return m_dir; } }; }