GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
std::experimental::filesystem::create_directory,(3) C++ Standard Libary std::experimental::filesystem::create_directory,(3)

std::experimental::filesystem::create_directory, - std::experimental::filesystem::create_directory,


Defined in header <experimental/filesystem>
bool create_directory( const path& p ); (1) (filesystem TS)
bool create_directory( const path& p, error_code& ec );
bool create_directory( const path& p, const path& existing_p );
bool create_directory( const path& p, const path& existing_p, (2) (filesystem TS)
error_code& ec );
bool create_directories( const path& p ); (3) (filesystem TS)
bool create_directories( const path& p, error_code& ec );


1) Creates the directory p as if by POSIX mkdir() with a second argument of
static_cast<int>(fs::perms::all) (the parent directory must already exist). If p
already exists and is already a directory, the function does nothing (this condition
is not treated as an error).
2) Same as (1), except that the attributes of the new directory are copied from
existing_p (which must be a directory that exists). It is OS-dependent which
attributes are copied: on POSIX systems, the attributes are copied as if by


stat(existing_p.c_str(), &attributes_stat)
mkdir(p.c_str(), attributes_stat.st_mode)


On Windows OS, the attributes are copied as if by


CreateDirectoryExW(existing_p.c_str(), p.c_str(), 0)


3) Executes (1) for every element of p that does not already exist.


The non-throwing overloads return false if any error occurs.


p - the path to the new directory to create
existing_p - the path to a directory to copy the attributes from
ec - out-parameter for error reporting in the non-throwing overload


1,2) true if directory creation is successful, false otherwise.


1,3) The overload that does not take a error_code& parameter throws filesystem_error
on underlying OS API errors, constructed with p as the first argument and the OS
error code as the error code argument. std::bad_alloc may be thrown if memory
allocation fails. The overload taking a error_code& parameter sets it to the OS API
error code if an OS API call fails, and executes ec.clear() if no errors occur. This
overload has
noexcept specification:
noexcept
2) The overload that does not take a error_code& parameter throws filesystem_error
on underlying OS API errors, constructed with p as the first argument, existing_p as
the second argument, and the OS error code as the error code argument.
std::bad_alloc may be thrown if memory allocation fails. The overload taking a
error_code& parameter sets it to the OS API error code if an OS API call fails, and
executes ec.clear() if no errors occur. This overload has
noexcept specification:
noexcept


The attribute-preserving overload (2) is implicitly invoked by copy() when
recursively copying directories. Its equivalent in boost.filesystem is
copy_directory (with argument order reversed)

// Run this code


#include <iostream>
#include <fstream>
#include <cstdlib>
#include <experimental/filesystem>
namespace fs = std::experimental::filesystem;


int main()
{
fs::create_directories("sandbox/1/2/a");
fs::create_directory("sandbox/1/2/b");
fs::permissions("sandbox/1/2/b", fs::perms::remove_perms | fs::perms::others_all);
fs::create_directory("sandbox/1/2/c", "sandbox/1/2/b");
std::system("ls -l sandbox/1/2");
fs::remove_all("sandbox");
}


drwxr-xr-x 2 user group 4096 Apr 15 09:33 a
drwxr-x--- 2 user group 4096 Apr 15 09:33 b
drwxr-x--- 2 user group 4096 Apr 15 09:33 c


create_symlink creates a symbolic link
create_directory_symlink (function)
copy copies files or directories
(function)
perms identifies file system permissions
(enum)

2022.07.31 http://cppreference.com

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.