xtd 0.2.0
directory.hpp
Go to the documentation of this file.
1
4#pragma once
5#include "directory_info.hpp"
6#include "../array.hpp"
7#include "../core_export.hpp"
8#include "../date_time.hpp"
9#include "../iequatable.hpp"
10#include "../static.hpp"
11#include <tuple>
12
14namespace xtd {
16 namespace io {
103 public:
105 class directory_iterator : public xtd::iequatable<directory_iterator> {
106 struct data;
107
108 explicit directory_iterator(const xtd::string& path, const xtd::string& pattern);
109 public:
111 using iterator_category = std::input_iterator_tag;
112 using value_type = xtd::string;
113 using difference_type = xtd::string;
114 using pointer = xtd::string*;
115 using reference = xtd::string&;
116
118 directory_iterator(const directory_iterator&) = default;
120
121 directory_iterator& operator ++();
122 directory_iterator operator ++(int32);
123 value_type operator *() const;
126 bool equals(const directory_iterator& other) const noexcept override;
128
129 private:
130 friend xtd::io::directory;
131
132 xtd::sptr<data> data_;
133 };
134
136 class file_iterator : public xtd::iequatable<file_iterator> {
137 struct data;
138
139 explicit file_iterator(const std::string& path, const std::string& pattern);
140 public:
142 using iterator_category = std::input_iterator_tag;
143 using value_type = xtd::string;
144 using difference_type = xtd::string;
145 using pointer = xtd::string*;
146 using reference = xtd::string&;
147
149 file_iterator(const file_iterator&) = default;
150 file_iterator(file_iterator&&) = default;
151
152 file_iterator& operator ++();
153 file_iterator operator ++(int);
154 value_type operator *() const;
157 bool equals(const file_iterator& other) const noexcept override;
159
160 private:
161 friend xtd::io::directory;
162
163 xtd::sptr<data> data_;
164 };
165
167 class file_system_entry_iterator : public xtd::iequatable<file_system_entry_iterator> {
168 struct data;
169
170 explicit file_system_entry_iterator(const std::string& path, const std::string& pattern);
171 public:
173 using iterator_category = std::input_iterator_tag;
174 using value_type = xtd::string;
175 using difference_type = xtd::string;
176 using pointer = xtd::string*;
177 using reference = xtd::string&;
178
182
183 file_system_entry_iterator& operator ++();
185 value_type operator *() const;
188 bool equals(const file_system_entry_iterator& other) const noexcept override;
190
191 private:
192 friend xtd::io::directory;
193
194 xtd::sptr<data> data_;
195 };
196
198
258
355
444
475
531 static bool exists(const xtd::string& path);
532
575
618
729
771
888 static xtd::array<xtd::string> get_files(const xtd::string& path, const xtd::string& search_pattern);
889
1128
1180
1231
1337
1450
1456
1492 static void move(const xtd::string& source_dir_name, const xtd::string& dest_dir_name);
1493
1537 static void remove(const xtd::string& path);
1538
1587 static void remove(const xtd::string& path, bool recursive);
1588
1644 static void set_creation_time(const xtd::string& path, const xtd::date_time& creation_time);
1700 static void set_creation_time(const xtd::string& path, time_t creation_time);
1701
1746
1793 static void set_last_access_time(const xtd::string& path, const xtd::date_time& last_access_time);
1794
1841 static void set_last_write_time(const xtd::string& path, const xtd::date_time& last_write_time);
1842
1855
1856 private:
1857 static std::tuple<time_t, time_t, time_t> get_file_times(const string& path);
1858 };
1859 }
1860}
Provides methods for creating, manipulating, searching, and sorting arrays, thereby serving as the ba...
Definition array.hpp:61
Represents text as a sequence of character units.
Definition basic_string.hpp:71
Represents an instant in time, typically expressed as a date and time of day.
Definition date_time.hpp:85
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.hpp:22
Represent directory iterator used by xtd::io::directory.
Definition directory.hpp:105
Represent file iterator used by xtd::io::directory.
Definition directory.hpp:136
Represent file system iterator used by xtd::io::directory.
Definition directory.hpp:167
Exposes instance methods for creating, moving, and enumerating through directories and subdirectories...
Definition directory_info.hpp:130
Exposes static methods for creating, moving, and enumerating through directories and subdirectories....
Definition directory.hpp:102
static bool exists(const xtd::string &path)
Determines whether the given path refers to an existing directory on disk.
static void set_last_write_time(const xtd::string &path, const xtd::date_time &last_write_time)
Sets the date and time a directory was last written to.
static xtd::array< xtd::string > get_files(const xtd::string &path, const xtd::string &search_pattern)
Returns the names of files (including their paths) that match the specified search pattern in the spe...
static xtd::date_time get_creation_time(const xtd::string &path)
Gets the creation date and time of a directory.
static xtd::io::directory::file_system_entry_iterator enumerate_file_system_entries(const xtd::string &path)
Returns an enumerable collection of file names and directory names in a specified path.
static xtd::array< xtd::string > get_file_system_entries(const xtd::string &path, const xtd::string &search_pattern)
Returns an array of file names and directory names that match a search pattern in a specified path.
static void set_current_directory(const xtd::string &path)
Sets the application's current working directory to the specified directory.
static xtd::io::directory::file_system_entry_iterator enumerate_file_system_entries(const xtd::string &path, const xtd::string &search_pattern)
Returns an enumerable collection of file names and directory names that match a search pattern in a s...
static xtd::io::directory::file_iterator enumerate_files(const xtd::string &path)
Returns an enumerable collection of full file names in a specified path.
static xtd::array< xtd::string > get_files(const xtd::string &path)
Returns the names of files (including their paths) in the specified directory.
static void move(const xtd::string &source_dir_name, const xtd::string &dest_dir_name)
Moves a file or a directory and its contents to a new location.
static xtd::io::directory::file_iterator enumerate_files(const xtd::string &path, const xtd::string &search_pattern)
Returns an enumerable collection of full file names that match a search pattern in a specified path.
static void set_permissions(const xtd::string &path, xtd::io::file_permissions permissions)
Sets the specified xtd::io::file_permissions of the directory on the specified path.
static xtd::date_time get_last_write_time(const xtd::string &path)
Returns the date and time the specified file or directory was last written to.
static xtd::io::directory::directory_iterator enumerate_directories(const xtd::string &path)
Returns an enumerable collection of directory full names in a specified path.
static xtd::io::directory_info get_parent(const xtd::string &path)
Retrieves the parent directory of the specified path, including both absolute and relative paths.
static xtd::array< xtd::string > get_directories(const xtd::string &path)
Returns the names of subdirectories (including their paths) in the specified directory.
static xtd::array< xtd::string > get_directories(const xtd::string &path, const xtd::string &search_pattern)
Returns the names of subdirectories (including their paths) that match the specified search pattern i...
static void remove(const xtd::string &path)
Deletes an empty directory from a specified path.
static void set_last_access_time(const xtd::string &path, const xtd::date_time &last_access_time)
Sets the date and time the specified file or directory was last accessed.
static xtd::array< xtd::string > get_file_system_entries(const xtd::string &path)
Returns the names of all files and subdirectories in a specified path.
static xtd::io::file_permissions get_permissions(const xtd::string &path)
Gets the xtd::io::file_permissions of the directory on the path.
static xtd::array< xtd::string > get_logical_drives()
Retrieves the names of the logical drives on this computer in the form "<drive letter>:\".
static xtd::io::directory_info create_directory(const xtd::string &path)
Creates all directories and subdirectories in the specified path unless they already exist.
static xtd::date_time get_last_access_time(const xtd::string &path)
Returns the date and time the specified file or directory was last accessed.
static void set_creation_time(const xtd::string &path, const xtd::date_time &creation_time)
Sets the creation date and time for the specified file or directory.
static xtd::io::directory::directory_iterator enumerate_directories(const xtd::string &path, const xtd::string &search_pattern)
Returns an enumerable collection of directory full names that match a search pattern in a specified p...
static void set_creation_time(const xtd::string &path, time_t creation_time)
Sets the creation date and time for the specified file or directory.
static xtd::string get_current_directory()
Gets the current working directory of the application.
static xtd::string get_directory_root(const xtd::string &path)
Returns the volume information, root information, or both for the specified path.
static void remove(const xtd::string &path, bool recursive)
Deletes the specified directory and, if indicated, any subdirectories and files in the directory.
Performs operations on std::basic_string instances that contain file or directory path information....
Definition path.hpp:37
The xtd::shared_ptr_object is a shared pointer as std::shared_ptr.
Definition shared_ptr_object.hpp:30
Contains xtd::io::directory_info class.
@ io
I/O erreror occurs.
#define static_
This keyword is use to represent a static object. A static object can't be instantiated (constructors...
Definition static.hpp:37
#define core_export_
Define shared library export.
Definition core_export.hpp:13
xtd::basic_string< char > string
Represents text as a sequence of UTF-8 code units.
Definition __string_definitions.hpp:43
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
file_permissions
Provides permissions for files and directories.
Definition file_permissions.hpp:24
@ begin
Specifies the beginning of a stream.
@ other
The operating system is other.
@ end
The END key.
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.hpp:10