Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      Standard library header <filesystem> (C++17)

      From cppreference.com
      <cpp‎ |header
       
       
      Standard library headers
       

      This header is part of thefilesystem support library.

      Contents

      Includes

      (C++20)
      Three-way comparison operator support[edit]

      Classes

      Defined in namespacestd::filesystem
      (C++17)
      represents a path
      (class)[edit]
      an exception thrown on file system errors
      (class)[edit]
      a directory entry
      (class)[edit]
      an iterator to the contents of the directory
      (class)[edit]
      an iterator to the contents of a directory and its subdirectories
      (class)[edit]
      represents file type and permissions
      (class)[edit]
      (C++17)
      information about free and available space on the filesystem
      (class)[edit]
      (C++17)
      the type of a file
      (enum)[edit]
      (C++17)
      identifies file system permissions
      (enum)[edit]
      specifies semantics of permissions operations
      (enum)[edit]
      specifies semantics of copy operations
      (enum)[edit]
      options for iterating directory contents
      (enum)[edit]
      represents file time values
      (typedef)[edit]
      Defined in namespacestd
      hash support forstd::filesystem::path
      (class template specialization)[edit]
      Forward declarations
      Defined in header<functional>
      Defined in namespacestd
      (C++11)
      hash function object
      (class template)[edit]

      Functions

      Defined in namespacestd::filesystem
      (C++17)(deprecated in C++20)
      creates apath from a UTF-8 encoded source
      (function)[edit]
      (C++17)
      composes an absolute path
      (function)[edit]
      composes a canonical path
      (function)[edit]
      composes a relative path
      (function)[edit]
      (C++17)
      copies files or directories
      (function)[edit]
      (C++17)
      copies file contents
      (function)[edit]
      copies a symbolic link
      (function)[edit]
      creates new directory
      (function)[edit]
      creates a hard link
      (function)[edit]
      creates a symbolic link
      (function)[edit]
      returns or sets the current working directory
      (function)[edit]
      (C++17)
      checks whether path refers to existing file system object
      (function)[edit]
      (C++17)
      checks whether two paths refer to the same file system object
      (function)[edit]
      (C++17)
      returns the size of a file
      (function)[edit]
      returns the number of hard links referring to the specific file
      (function)[edit]
      gets or sets the time of the last data modification
      (function)[edit]
      modifies file access permissions
      (function)[edit]
      obtains the target of a symbolic link
      (function)[edit]
      (C++17)(C++17)
      removes a file or empty directory
      removes a file or directory and all its contents, recursively
      (function)[edit]
      (C++17)
      moves or renames a file or directory
      (function)[edit]
      changes the size of a regular file by truncation or zero-fill
      (function)[edit]
      (C++17)
      determines available free space on the file system
      (function)[edit]
      (C++17)(C++17)
      determines file attributes
      determines file attributes, checking the symlink target
      (function)[edit]
      returns a directory suitable for temporary files
      (function)[edit]
      File types
      checks whether the given path refers to block device
      (function)[edit]
      checks whether the given path refers to a character device
      (function)[edit]
      checks whether the given path refers to a directory
      (function)[edit]
      (C++17)
      checks whether the given path refers to an empty file or directory
      (function)[edit]
      (C++17)
      checks whether the given path refers to a named pipe
      (function)[edit]
      (C++17)
      checks whether the argument refers to another file
      (function)[edit]
      checks whether the argument refers to a regular file
      (function)[edit]
      (C++17)
      checks whether the argument refers to a named IPC socket
      (function)[edit]
      (C++17)
      checks whether the argument refers to a symbolic link
      (function)[edit]
      checks whether file status is known
      (function)[edit]

      [edit]Synopsis

      #include <compare> namespace std::filesystem{// pathsclass path; // path non-member functionsvoid swap(path& lhs, path& rhs)noexcept;  size_t hash_value(const path& p)noexcept; // filesystem errorsclass filesystem_error; // directory entriesclass directory_entry; // directory iteratorsclass directory_iterator; // range access for directory iterators  directory_iterator begin(directory_iterator iter)noexcept;  directory_iterator end(directory_iterator)noexcept; // recursive directory iteratorsclass recursive_directory_iterator; // range access for recursive directory iterators  recursive_directory_iterator begin(recursive_directory_iterator iter)noexcept;  recursive_directory_iterator end(recursive_directory_iterator)noexcept; // file statusclass file_status; struct space_info{    uintmax_t capacity;    uintmax_t free;    uintmax_t available; friendbool operator==(const space_info&,const space_info&)=default;}; // enumerationsenumclass file_type;enumclass perms;enumclass perm_options;enumclass copy_options;enumclass directory_options; using file_time_type= chrono::time_point<chrono::file_clock>; // filesystem operations  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, error_code& ec);void copy(const path& from,const path& to, copy_options options);void copy(const path& from,const path& to, copy_options options,            error_code& ec); bool copy_file(const path& from,const path& to);bool copy_file(const path& from,const path& to, error_code& ec);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& 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, error_code& ec)noexcept; bool create_directory(const path& p,const path& attributes);bool create_directory(const path& p,const path& attributes,                        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();  path current_path(error_code& ec);void current_path(const path& p);void current_path(const path& p, error_code& ec)noexcept; bool equivalent(const path& p1,const path& p2);bool equivalent(const path& p1,const path& p2, error_code& ec)noexcept; bool exists(file_status s)noexcept;bool exists(const path& p);bool exists(const path& p, error_code& ec)noexcept;   uintmax_t file_size(const path& p);  uintmax_t file_size(const path& p, error_code& ec)noexcept;   uintmax_t hard_link_count(const path& p);  uintmax_t hard_link_count(const path& p, error_code& ec)noexcept; bool is_block_file(file_status s)noexcept;bool is_block_file(const path& p);bool is_block_file(const path& p, error_code& ec)noexcept; bool is_character_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_directory(file_status s)noexcept;bool is_directory(const path& p);bool is_directory(const path& p, error_code& ec)noexcept; bool is_empty(const path& p);bool is_empty(const path& p, error_code& ec); bool is_fifo(file_status s)noexcept;bool is_fifo(const path& p);bool is_fifo(const path& p, error_code& ec)noexcept; bool is_other(file_status s)noexcept;bool is_other(const path& p);bool is_other(const path& p, error_code& ec)noexcept; bool is_regular_file(file_status s)noexcept;bool is_regular_file(const path& p);bool is_regular_file(const path& p, error_code& ec)noexcept; bool is_socket(file_status s)noexcept;bool is_socket(const path& p);bool is_socket(const path& p, error_code& ec)noexcept; bool is_symlink(file_status s)noexcept;bool is_symlink(const path& p);bool is_symlink(const path& p, error_code& ec)noexcept;   file_time_type last_write_time(const path& p);  file_time_type last_write_time(const path& p, error_code& ec)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; void permissions(const path& p, perms prms, perm_options opts=perm_options::replace);void permissions(const path& p, perms prms, error_code& ec)noexcept;void permissions(const path& p, perms prms, perm_options opts, error_code& ec);   path proximate(const path& p, error_code& ec);  path proximate(const path& p,const path& base= current_path());  path proximate(const path& p,const path& base, error_code& ec);   path read_symlink(const path& p);  path read_symlink(const path& p, error_code& ec);   path relative(const path& p, error_code& ec);  path relative(const path& p,const path& base= current_path());  path relative(const path& p,const path& base, error_code& ec); bool remove(const path& p);bool remove(const path& p, error_code& ec)noexcept;   uintmax_t remove_all(const path& p);  uintmax_t remove_all(const path& p, error_code& ec); 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& p);  file_status status(const path& p, error_code& ec)noexcept; bool status_known(file_status s)noexcept;   file_status symlink_status(const path& p);  file_status symlink_status(const path& p, error_code& ec)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);} // hash supportnamespace std{template<class T>struct hash;template<>struct hash<filesystem::path>;} namespace std::ranges{template<>inlineconstexprbool enable_borrowed_range<filesystem::directory_iterator>=true;template<>inlineconstexprbool    enable_borrowed_range<filesystem::recursive_directory_iterator>=true; template<>inlineconstexprbool enable_view<filesystem::directory_iterator>=true;template<>inlineconstexprbool enable_view<filesystem::recursive_directory_iterator>=true;}

      [edit]Classstd::filesystem::path

      namespace std::filesystem{class path{public:using value_type=/* see description */;using string_type= basic_string<value_type>;staticconstexpr value_type preferred_separator=/* see description */; // enumeration formatenum format; // constructors and destructor    path()noexcept;    path(const path& p);    path(path&& p)noexcept;    path(string_type&& source, format fmt= auto_format);template<class Source>      path(const Source& source, format fmt= auto_format);template<class InputIt>      path(InputIt first, InputIt last, format fmt= auto_format);template<class Source>      path(const Source& source,const locale& loc, format fmt= auto_format);template<class InputIt>      path(InputIt first, InputIt last,const locale& loc, format fmt= auto_format);    ~path(); // assignments    path& operator=(const path& p);    path& operator=(path&& p)noexcept;    path& operator=(string_type&& source);    path& assign(string_type&& source);template<class Source>      path& operator=(const Source& source);template<class Source>      path& assign(const Source& source);template<class InputIt>      path& assign(InputIt first, InputIt last); // appends    path& operator/=(const path& p);template<class Source>      path& operator/=(const Source& source);template<class Source>      path& append(const Source& source);template<class InputIt>      path& append(InputIt first, InputIt last); // concatenation    path& operator+=(const path& x);    path& operator+=(const string_type& x);    path& operator+=(basic_string_view<value_type> x);    path& operator+=(const value_type* x);    path& operator+=(value_type x);template<class Source>      path& operator+=(const Source& x);template<class ECharT>      path& operator+=(ECharT x);template<class Source>      path& concat(const Source& x);template<class InputIt>      path& concat(InputIt first, InputIt last); // modifiersvoid  clear()noexcept;    path& make_preferred();    path& remove_filename();    path& replace_filename(const path& replacement);    path& replace_extension(const path& replacement= path());void  swap(path& rhs)noexcept; // non-member operatorsfriendbool operator==(const path& lhs,const path& rhs)noexcept;friend strong_ordering operator<=>(const path& lhs,const path& rhs)noexcept; friend path operator/(const path& lhs,const path& rhs); // native format observersconst string_type& native()constnoexcept;const value_type*  c_str()constnoexcept;    operator string_type()const; template<class ECharT,class Traits= char_traits<ECharT>,class Allocator= allocator<ECharT>>      basic_string<ECharT, Traits, Allocator>        string(const Allocator& a= Allocator())const;std::string    string()const;std::wstring   wstring()const;std::u8string  u8string()const;std::u16string u16string()const;std::u32string u32string()const; // generic format observerstemplate<class ECharT,class Traits= char_traits<ECharT>,class Allocator= allocator<ECharT>>      basic_string<ECharT, Traits, Allocator>        generic_string(const Allocator& a= Allocator())const;std::string    generic_string()const;std::wstring   generic_wstring()const;std::u8string  generic_u8string()const;std::u16string generic_u16string()const;std::u32string generic_u32string()const; // compareint compare(const path& p)constnoexcept;int compare(const string_type& s)const;int compare(basic_string_view<value_type> s)const;int compare(const value_type* s)const; // decomposition    path root_name()const;    path root_directory()const;    path root_path()const;    path relative_path()const;    path parent_path()const;    path filename()const;    path stem()const;    path extension()const; // querybool empty()constnoexcept;bool has_root_name()const;bool has_root_directory()const;bool has_root_path()const;bool has_relative_path()const;bool has_parent_path()const;bool has_filename()const;bool has_stem()const;bool has_extension()const;bool is_absolute()const;bool is_relative()const; // generation    path lexically_normal()const;    path lexically_relative(const path& base)const;    path lexically_proximate(const path& base)const; // iteratorsclass iterator;using const_iterator= iterator;     iterator begin()const;    iterator end()const; // path inserter and extractortemplate<class CharT,class Traits>friend basic_ostream<CharT, Traits>&        operator<<(basic_ostream<CharT, Traits>& os,const path& p);template<class CharT,class Traits>friend basic_istream<CharT, Traits>&        operator>>(basic_istream<CharT, Traits>& is, path& p);};}

      [edit]Classstd::filesystem::filesystem_error

      namespace std::filesystem{class filesystem_error:public system_error{public:    filesystem_error(const string& what_arg, error_code ec);    filesystem_error(const string& what_arg,const path& p1, error_code ec);    filesystem_error(const string& what_arg,const path& p1,const path& p2, error_code ec); const path& path1()constnoexcept;const path& path2()constnoexcept;constchar* what()constnoexcept override;};}

      [edit]Classstd::filesystem::directory_entry

      namespace std::filesystem{class directory_entry{public:// constructors and destructor    directory_entry()noexcept=default;    directory_entry(const directory_entry&)=default;    directory_entry(directory_entry&&)noexcept=default;explicit directory_entry(const filesystem::path& p);    directory_entry(const filesystem::path& p, error_code& ec);    ~directory_entry(); // assignments    directory_entry& operator=(const directory_entry&)=default;    directory_entry& operator=(directory_entry&&)noexcept=default; // modifiersvoid assign(const filesystem::path& p);void assign(const filesystem::path& p, error_code& ec);void replace_filename(const filesystem::path& p);void replace_filename(const filesystem::path& p, error_code& ec);void refresh();void refresh(error_code& ec)noexcept; // observersconst filesystem::path& path()constnoexcept;    operatorconst filesystem::path&()constnoexcept;bool exists()const;bool exists(error_code& ec)constnoexcept;bool is_block_file()const;bool is_block_file(error_code& ec)constnoexcept;bool is_character_file()const;bool is_character_file(error_code& ec)constnoexcept;bool is_directory()const;bool is_directory(error_code& ec)constnoexcept;bool is_fifo()const;bool is_fifo(error_code& ec)constnoexcept;bool is_other()const;bool is_other(error_code& ec)constnoexcept;bool is_regular_file()const;bool is_regular_file(error_code& ec)constnoexcept;bool is_socket()const;bool is_socket(error_code& ec)constnoexcept;bool is_symlink()const;bool is_symlink(error_code& ec)constnoexcept;    uintmax_t file_size()const;    uintmax_t file_size(error_code& ec)constnoexcept;    uintmax_t hard_link_count()const;    uintmax_t hard_link_count(error_code& ec)constnoexcept;    file_time_type last_write_time()const;    file_time_type last_write_time(error_code& ec)constnoexcept;    file_status status()const;    file_status status(error_code& ec)constnoexcept;    file_status symlink_status()const;    file_status symlink_status(error_code& ec)constnoexcept; bool operator==(const directory_entry& rhs)constnoexcept;    strong_ordering operator<=>(const directory_entry& rhs)constnoexcept; // insertertemplate<class CharT,class Traits>friend basic_ostream<CharT, Traits>&        operator<<(basic_ostream<CharT, Traits>& os,const directory_entry& d); private:    filesystem::path pathobject;// exposition onlyfriendclass directory_iterator;// exposition only};}

      [edit]Classstd::filesystem::directory_iterator

      namespace std::filesystem{class directory_iterator{public:using iterator_category= input_iterator_tag;using value_type= directory_entry;using difference_type= ptrdiff_t;using pointer=const directory_entry*;using reference=const directory_entry&; // member functions    directory_iterator()noexcept;explicit directory_iterator(const path& p);    directory_iterator(const path& p, directory_options options);    directory_iterator(const path& p, error_code& ec);    directory_iterator(const path& p, directory_options options,                       error_code& ec);    directory_iterator(const directory_iterator& rhs);    directory_iterator(directory_iterator&& rhs)noexcept;    ~directory_iterator();     directory_iterator& operator=(const directory_iterator& rhs);    directory_iterator& operator=(directory_iterator&& rhs)noexcept; const directory_entry& operator*()const;const directory_entry* operator->()const;    directory_iterator&    operator++();    directory_iterator&    increment(error_code& ec); bool operator==(default_sentinel_t)constnoexcept{return*this== directory_iterator();} // other members as required by input iterators};}

      [edit]Classstd::filesystem::recursive_directory_iterator

      namespace std::filesystem{class recursive_directory_iterator{public:using iterator_category= input_iterator_tag;using value_type= directory_entry;using difference_type= ptrdiff_t;using pointer=const directory_entry*;using reference=const directory_entry&; // constructors and destructor    recursive_directory_iterator()noexcept;explicit recursive_directory_iterator(const path& p);    recursive_directory_iterator(const path& p, directory_options options);    recursive_directory_iterator(const path& p, directory_options options,                                 error_code& ec);    recursive_directory_iterator(const path& p, error_code& ec);    recursive_directory_iterator(const recursive_directory_iterator& rhs);    recursive_directory_iterator(recursive_directory_iterator&& rhs)noexcept;    ~recursive_directory_iterator(); // observers    directory_options  options()const;int                depth()const;bool               recursion_pending()const; const directory_entry& operator*()const;const directory_entry* operator->()const; // modifiers    recursive_directory_iterator&      operator=(const recursive_directory_iterator& rhs);    recursive_directory_iterator&      operator=(recursive_directory_iterator&& rhs)noexcept;     recursive_directory_iterator& operator++();    recursive_directory_iterator& increment(error_code& ec); void pop();void pop(error_code& ec);void disable_recursion_pending(); bool operator==(default_sentinel_t)constnoexcept{return*this== recursive_directory_iterator();} // other members as required by input iterators};}

      [edit]Classstd::filesystem::file_status

      namespace std::filesystem{class file_status{public:// constructors and destructor    file_status()noexcept: file_status(file_type::none){}explicit file_status(file_type ft,                         perms prms= perms::unknown)noexcept;    file_status(const file_status&)noexcept=default;    file_status(file_status&&)noexcept=default;    ~file_status(); // assignments    file_status& operator=(const file_status&)noexcept=default;    file_status& operator=(file_status&&)noexcept=default; // modifiersvoid       type(file_type ft)noexcept;void       permissions(perms prms)noexcept; // observers    file_type  type()constnoexcept;    perms      permissions()constnoexcept; friendbool operator==(const file_status& lhs,const file_status& rhs)noexcept{return lhs.type()== rhs.type()&& lhs.permissions()== rhs.permissions();}};}
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/header/filesystem&oldid=163913"

      [8]ページ先頭

      ©2009-2025 Movatter.jp