---
name: "std::filesystem"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::filesystem/3cxx"
---

# std::filesystem(3cxx)

ISO C++ 2017 namespace for File System library.

## NAME

std::filesystem - ISO C++ 2017 namespace for File System library.

## SYNOPSIS

### Classes

class **directory\_entry**\
 The value type used by directory iterators.  class **directory\_iterator**\
 Iterator type for traversing the entries in a single directory.  class **file\_status**\
 Information about a file's type and permissions.  class **filesystem\_error**\
 Exception type thrown by the Filesystem library.  class **path**\
 A filesystem path.  class **recursive\_directory\_iterator**\
 Iterator type for recursively traversing a directory hierarchy.  struct **space\_info**\
 Information about free space on a disk.

### Typedefs

**using** **file\_time\_type** = **\_\_file\_clock::time\_point**\
 The type used for file timestamps.

### Enumerations

enum class **copy\_options** : unsigned short { **none**, **skip\_existing**, **overwrite\_existing**, **update\_existing**, **recursive**, **copy\_symlinks**, **skip\_symlinks**, **directories\_only**, **create\_symlinks**, **create\_hard\_links** }\
 Bitmask type controlling effects of `filesystem::copy`  enum class **directory\_options** : unsigned char { **none**, **follow\_directory\_symlink**, **skip\_permission\_denied** }\
 Bitmask type controlling directory iteration.  enum class **file\_type** : signed char { **none**, **not\_found**, **regular**, **directory**, **symlink**, **block**, **character**, **fifo**, **socket**, **unknown** }\
 Enumerated type representing the type of a file.  enum class **perm\_options** : unsigned { **replace**, **add**, **remove**, **nofollow** }\
 Bitmask type controlling changes to permissions.  enum class **perms** : unsigned { **none**, **owner\_read**, **owner\_write**, **owner\_exec**, **owner\_all**, **group\_read**, **group\_write**, **group\_exec**, **group\_all**, **others\_read**, **others\_write**, **others\_exec**, **others\_all**, **all**, **set\_uid**, **set\_gid**, **sticky\_bit**, **mask**, **unknown** }\
 Bitmask type representing file access permissions.

### Functions

**path** **absolute** (const **path** &\_\_p)\
 **path** **absolute** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 **path** **canonical** (const **path** &\_\_p)\
 **path** **canonical** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 **void** **copy** (const **path** &**\_\_from**, const **path** &**\_\_to**)\
 **void** **copy** (const **path** &**\_\_from**, const **path** &**\_\_to**, **copy\_options** **\_\_options**)\
 **void** **copy** (const **path** &**\_\_from**, const **path** &**\_\_to**, **copy\_options** **\_\_options**, **error\_code** &)\
 **void** **copy** (const **path** &**\_\_from**, const **path** &**\_\_to**, **error\_code** &**\_\_ec**)\
 bool **copy\_file** (const **path** &**\_\_from**, const **path** &**\_\_to**)\
 bool **copy\_file** (const **path** &**\_\_from**, const **path** &**\_\_to**, **copy\_options** **\_\_option**)\
 bool **copy\_file** (const **path** &**\_\_from**, const **path** &**\_\_to**, **copy\_options** **\_\_option**, **error\_code** &)\
 bool **copy\_file** (const **path** &**\_\_from**, const **path** &**\_\_to**, **error\_code** &**\_\_ec**)\
 **void** **copy\_symlink** (const **path** &**\_\_existing\_symlink**, const **path** &**\_\_new\_symlink**)\
 **void** **copy\_symlink** (const **path** &**\_\_existing\_symlink**, const **path** &**\_\_new\_symlink**, **error\_code** &**\_\_ec**) noexcept\
 bool **create\_directories** (const **path** &\_\_p)\
 bool **create\_directories** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 bool **create\_directory** (const **path** &\_\_p)\
 bool **create\_directory** (const **path** &\_\_p, const **path** &**\_\_attributes**)\
 bool **create\_directory** (const **path** &\_\_p, const **path** &**\_\_attributes**, **error\_code** &**\_\_ec**) noexcept\
 bool **create\_directory** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 **void** **create\_directory\_symlink** (const **path** &**\_\_to**, const **path** &**\_\_new\_symlink**)\
 **void** **create\_directory\_symlink** (const **path** &**\_\_to**, const **path** &**\_\_new\_symlink**, **error\_code** &**\_\_ec**) noexcept\
 **void** **create\_hard\_link** (const **path** &**\_\_to**, const **path** &**\_\_new\_hard\_link**)\
 **void** **create\_hard\_link** (const **path** &**\_\_to**, const **path** &**\_\_new\_hard\_link**, **error\_code** &**\_\_ec**) noexcept\
 **void** **create\_symlink** (const **path** &**\_\_to**, const **path** &**\_\_new\_symlink**)\
 **void** **create\_symlink** (const **path** &**\_\_to**, const **path** &**\_\_new\_symlink**, **error\_code** &**\_\_ec**) noexcept\
 **path** **current\_path** ()\
 **void** **current\_path** (const **path** &\_\_p)\
 **void** **current\_path** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 **path** **current\_path** (**error\_code** &**\_\_ec**)\
 bool **equivalent** (const **path** &**\_\_p1**, const **path** &**\_\_p2**)\
 bool **equivalent** (const **path** &**\_\_p1**, const **path** &**\_\_p2**, **error\_code** &**\_\_ec**) noexcept\
 bool **exists** (const **path** &\_\_p)\
 bool **exists** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **exists** (**file\_status**) noexcept\
 uintmax\_t **file\_size** (const **path** &)\
 uintmax\_t **file\_size** (const **path** &, **error\_code** &) noexcept\
 uintmax\_t **hard\_link\_count** (const **path** &)\
 uintmax\_t **hard\_link\_count** (const **path** &, **error\_code** &) noexcept\
 size\_t **hash\_value** (const **path** &\_\_p) noexcept\
 bool **is\_block\_file** (const **path** &\_\_p)\
 bool **is\_block\_file** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_block\_file** (**file\_status** **\_\_s**) noexcept\
 bool **is\_character\_file** (const **path** &\_\_p)\
 bool **is\_character\_file** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_character\_file** (**file\_status** **\_\_s**) noexcept\
 bool **is\_directory** (const **path** &\_\_p)\
 bool **is\_directory** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_directory** (**file\_status** **\_\_s**) noexcept\
 bool **is\_empty** (const **path** &\_\_p)\
 bool **is\_empty** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 bool **is\_fifo** (const **path** &\_\_p)\
 bool **is\_fifo** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_fifo** (**file\_status** **\_\_s**) noexcept\
 bool **is\_other** (const **path** &\_\_p)\
 bool **is\_other** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_other** (**file\_status**) noexcept\
 bool **is\_regular\_file** (const **path** &\_\_p)\
 bool **is\_regular\_file** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_regular\_file** (**file\_status**) noexcept\
 bool **is\_socket** (const **path** &\_\_p)\
 bool **is\_socket** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_socket** (**file\_status** **\_\_s**) noexcept\
 bool **is\_symlink** (const **path** &\_\_p)\
 bool **is\_symlink** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 bool **is\_symlink** (**file\_status**) noexcept\
 **file\_time\_type** **last\_write\_time** (const **path** &)\
 **file\_time\_type** **last\_write\_time** (const **path** &, **error\_code** &) noexcept\
 **void** **last\_write\_time** (const **path** &\_\_p, **file\_time\_type** **\_\_new\_time**)\
 **void** **last\_write\_time** (const **path** &\_\_p, **file\_time\_type** **\_\_new\_time**, **error\_code** &**\_\_ec**) noexcept\
 **copy\_options** & **operator&=** (**copy\_options** &\_\_x, **copy\_options** \_\_y) noexcept\
 constexpr **copy\_options** **operator^** (**copy\_options** \_\_x, **copy\_options** \_\_y) noexcept\
 **copy\_options** & **operator^=** (**copy\_options** &\_\_x, **copy\_options** \_\_y) noexcept\
 constexpr **copy\_options** **operator\|** (**copy\_options** \_\_x, **copy\_options** \_\_y) noexcept\
 **copy\_options** & **operator\|=** (**copy\_options** &\_\_x, **copy\_options** \_\_y) noexcept\
 constexpr **copy\_options** **operator~** (**copy\_options** \_\_x) noexcept\
 **void** **permissions** (const **path** &, **perms**, **perm\_options**, **error\_code** &) noexcept\
 **void** **permissions** (const **path** &\_\_p, **perms** **\_\_prms**, **error\_code** &**\_\_ec**) noexcept\
 **void** **permissions** (const **path** &\_\_p, **perms** **\_\_prms**, **perm\_options** **\_\_opts**=perm\_options::replace)\
 **path** **proximate** (const **path** &\_\_p, const **path** &\_\_base, **error\_code** &**\_\_ec**)\
 **path** **proximate** (const **path** &\_\_p, const **path** &\_\_base=current\_path())\
 **path** **proximate** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 **path** **read\_symlink** (const **path** &\_\_p)\
 **path** **read\_symlink** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 **path** **relative** (const **path** &\_\_p, const **path** &\_\_base, **error\_code** &**\_\_ec**)\
 **path** **relative** (const **path** &\_\_p, const **path** &\_\_base=current\_path())\
 **path** **relative** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\
 bool **remove** (const **path** &, **error\_code** &) noexcept\
 bool **remove** (const **path** &\_\_p)\
 uintmax\_t **remove\_all** (const **path** &)\
 uintmax\_t **remove\_all** (const **path** &, **error\_code** &)\
 **void** **rename** (const **path** &**\_\_from**, const **path** &**\_\_to**)\
 **void** **rename** (const **path** &**\_\_from**, const **path** &**\_\_to**, **error\_code** &**\_\_ec**) noexcept\
 **void** **resize\_file** (const **path** &\_\_p, uintmax\_t **\_\_size**)\
 **void** **resize\_file** (const **path** &\_\_p, uintmax\_t **\_\_size**, **error\_code** &**\_\_ec**) noexcept\
 **space\_info** **space** (const **path** &\_\_p)\
 **space\_info** **space** (const **path** &\_\_p, **error\_code** &**\_\_ec**) noexcept\
 **file\_status** **status** (const **path** &)\
 **file\_status** **status** (const **path** &, **error\_code** &) noexcept\
 bool **status\_known** (**file\_status**) noexcept\
 **file\_status** **symlink\_status** (const **path** &)\
 **file\_status** **symlink\_status** (const **path** &, **error\_code** &) noexcept\
 **path** **temp\_directory\_path** ()\
 **path** **temp\_directory\_path** (**error\_code** &**\_\_ec**)\
 **path** **weakly\_canonical** (const **path** &\_\_p)\
 **path** **weakly\_canonical** (const **path** &\_\_p, **error\_code** &**\_\_ec**)\

constexpr **perms** **operator\|** (**perms** \_\_x, **perms** \_\_y) noexcept\
 constexpr **perms** **operator^** (**perms** \_\_x, **perms** \_\_y) noexcept\
 constexpr **perms** **operator~** (**perms** \_\_x) noexcept\
 **perms** & **operator&=** (**perms** &\_\_x, **perms** \_\_y) noexcept\
 **perms** & **operator\|=** (**perms** &\_\_x, **perms** \_\_y) noexcept\
 **perms** & **operator^=** (**perms** &\_\_x, **perms** \_\_y) noexcept\

constexpr **perm\_options** **operator\|** (**perm\_options** \_\_x, **perm\_options** \_\_y) noexcept\
 constexpr **perm\_options** **operator^** (**perm\_options** \_\_x, **perm\_options** \_\_y) noexcept\
 constexpr **perm\_options** **operator~** (**perm\_options** \_\_x) noexcept\
 **perm\_options** & **operator&=** (**perm\_options** &\_\_x, **perm\_options** \_\_y) noexcept\
 **perm\_options** & **operator\|=** (**perm\_options** &\_\_x, **perm\_options** \_\_y) noexcept\
 **perm\_options** & **operator^=** (**perm\_options** &\_\_x, **perm\_options** \_\_y) noexcept\

constexpr **directory\_options** **operator\|** (**directory\_options** \_\_x, **directory\_options** \_\_y) noexcept\
 constexpr **directory\_options** **operator^** (**directory\_options** \_\_x, **directory\_options** \_\_y) noexcept\
 constexpr **directory\_options** **operator~** (**directory\_options** \_\_x) noexcept\
 **directory\_options** & **operator&=** (**directory\_options** &\_\_x, **directory\_options** \_\_y) noexcept\
 **directory\_options** & **operator\|=** (**directory\_options** &\_\_x, **directory\_options** \_\_y) noexcept\
 **directory\_options** & **operator^=** (**directory\_options** &\_\_x, **directory\_options** \_\_y) noexcept\

## Detailed Description

ISO C++ 2017 namespace for File System library.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
