@ -114,20 +114,41 @@ bool CreateDir(const fs::path& path) {
return true ;
}
bool Create FullPath ( const fs : : path & path ) {
bool Create Dirs ( const fs : : path & path ) {
LOG_TRACE ( Common_Filesystem , " path {} " , path . string ( ) ) ;
if ( Exists ( path ) ) {
LOG_DEBUG ( Common_Filesystem , " path exists {} " , path . string ( ) ) ;
return true ;
}
std : : error_code ec ;
const bool success = fs : : create_directories ( path , ec ) ;
if ( ! success ) {
LOG_ERROR ( Common_Filesystem , " Unable to create full path: {} " , ec . message ( ) ) ;
LOG_ERROR ( Common_Filesystem , " Unable to create directories : {}" , ec . message ( ) ) ;
return false ;
}
return true ;
}
bool CreateFullPath ( const fs : : path & path ) {
LOG_TRACE ( Common_Filesystem , " path {} " , path ) ;
// Removes trailing slashes and turns any '\' into '/'
const auto new_path = SanitizePath ( path . string ( ) , DirectorySeparator : : ForwardSlash ) ;
if ( new_path . rfind ( ' . ' ) = = std : : string : : npos ) {
// The path is a directory
return CreateDirs ( new_path ) ;
} else {
// The path is a file
// Creates directory preceding the last '/'
return CreateDirs ( new_path . substr ( 0 , new_path . rfind ( ' / ' ) ) ) ;
}
}
bool Rename ( const fs : : path & src , const fs : : path & dst ) {
LOG_TRACE ( Common_Filesystem , " {} --> {} " , src . string ( ) , dst . string ( ) ) ;