From 3a13302e0f4fcbe4131a4afffb91505e08e07e45 Mon Sep 17 00:00:00 2001 From: Andrej Babic Date: Tue, 26 May 2020 19:44:26 +0200 Subject: [PATCH] Replace slow call with C++17 stdlib --- sf-buffer/src/WriterUtils.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/sf-buffer/src/WriterUtils.cpp b/sf-buffer/src/WriterUtils.cpp index 7653bee..4adfeba 100644 --- a/sf-buffer/src/WriterUtils.cpp +++ b/sf-buffer/src/WriterUtils.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "WriterUtils.hpp" #include "date.h" @@ -41,9 +42,20 @@ void WriterUtils::create_destination_folder(const string& output_file) auto file_separator_index = output_file.rfind('/'); if (file_separator_index != string::npos) { + string output_folder(output_file.substr(0, file_separator_index)); - string create_folder_command("mkdir -p " + output_folder); - system(create_folder_command.c_str()); + if(!filesystem::create_directories(output_folder)) { + stringstream err_msg; + + using namespace date; + using namespace chrono; + err_msg << "[" << system_clock::now() << "]"; + err_msg << "[WriterUtils::create_destination_folder]"; + err_msg << " Cannot create directory "; + err_msg << output_folder << endl; + + throw runtime_error(err_msg.str()); + } } }