xtd 0.2.0
directory_info.hpp
Go to the documentation of this file.
1
4#pragma once
6#include "../array.hpp"
7#include "../iequatable.hpp"
8#include <iterator>
9#include <memory>
10
12namespace xtd {
14 namespace io {
16 class directory;
17 class file_info;
19
131 public:
133 class directory_iterator : public xtd::iequatable<directory_iterator> {
134 struct data;
135
136 explicit directory_iterator(const xtd::string& path, const xtd::string& pattern);
137 public:
139 using iterator_category = std::input_iterator_tag;
140 using value_type = xtd::io::directory_info;
141 using difference_type = xtd::io::directory_info;
142 using pointer = xtd::io::directory_info*;
143 using reference = xtd::io::directory_info&;
144
146 directory_iterator(const directory_iterator&) = default;
148
149 directory_iterator& operator ++();
150 directory_iterator operator ++(int32);
151 value_type operator *() const;
154 bool equals(const directory_iterator& other) const noexcept override;
155
156 xtd::string path() const;
157 xtd::string pattern() const;
159
160 private:
161 friend xtd::io::directory;
163
164 xtd::sptr<data> data_;
165 };
166
168 class file_iterator : public xtd::iequatable<file_iterator> {
169 struct data;
170
171 explicit file_iterator(const std::string& path, const std::string& pattern);
172 public:
174 using iterator_category = std::input_iterator_tag;
175 using value_type = xtd::io::file_info;
176 using difference_type = xtd::io::file_info;
177 using pointer = xtd::io::file_info*;
178 using reference = xtd::io::file_info&;
179
181 file_iterator(const file_iterator&) = default;
182 file_iterator(file_iterator&&) = default;
183
184 file_iterator& operator ++();
185 file_iterator operator ++(int32);
186 value_type operator *() const;
189 bool equals(const file_iterator& other) const noexcept override;
190
191 xtd::string path() const;
192 xtd::string pattern() const;
194
195 private:
196 friend xtd::io::directory;
198
199 xtd::sptr<data> data_;
200 };
201
203 class file_system_info_iterator : public xtd::iequatable<file_system_info_iterator> {
204 struct data;
205
206 explicit file_system_info_iterator(const std::string& path, const std::string& pattern);
207 public:
209 using iterator_category = std::input_iterator_tag;
210 using value_type = xtd::sptr<xtd::io::file_system_info>;
211 using difference_type = xtd::sptr<xtd::io::file_system_info>;
212 using pointer = xtd::sptr<xtd::io::file_system_info>* ;
213 using reference = xtd::sptr<xtd::io::file_system_info>& ;
214
218
219 file_system_info_iterator& operator ++();
220 file_system_info_iterator operator ++(int32);
221 value_type operator *() const;
224 bool equals(const file_system_info_iterator& other) const noexcept override;
225
226 xtd::string path() const;
227 xtd::string pattern() const;
229
230 private:
231 friend xtd::io::directory;
233
234 xtd::sptr<data> data_;
235 };
236
238
241 static const directory_info empty;
243
245
288
290 directory_info() = default;
292
294
340 bool exists() const override;
341
366 xtd::string name() const override;
367
408
448
450
494 void create();
495
542
602
778
816
903
1051
1231
1284 void move_to(const xtd::string& dest_dir_name);
1285
1323 void remove() const override;
1324
1368 void remove(bool recursive) const;
1370 };
1371 }
1372}
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
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_info.
Definition directory_info.hpp:133
Represent file iterator used by xtd::io::directory_info.
Definition directory_info.hpp:168
Represent file system iterator used by xtd::io::directory_info.
Definition directory_info.hpp:203
Exposes instance methods for creating, moving, and enumerating through directories and subdirectories...
Definition directory_info.hpp:130
directory_info(const xtd::string &path)
Initializes a new instance of the xtd::io::directory_info class on the specified path.
xtd::array< xtd::io::directory_info > get_directories() const
Returns the subdirectories of the current directory.
xtd::array< xtd::io::file_info > get_files() const
Returns a file list from the current directory.
xtd::io::directory_info parent() const
Gets the parent directory of a specified subdirectory.
xtd::io::directory_info::file_system_info_iterator enumerate_file_system_infos() const
Returns an enumerable collection of file system information in the current directory.
xtd::io::directory_info::file_iterator enumerate_files(const xtd::string &search_pattern) const
Returns an enumerable collection of file information that matches a search pattern.
xtd::array< xtd::io::file_info > get_files(const xtd::string &search_pattern) const
Returns a file list from the current directory matching the given search pattern.
bool exists() const override
Gets a value indicating whether the directory exists.
void remove(bool recursive) const
Deletes this instance of a DirectoryInfo, specifying whether to delete subdirectories and files.
void remove() const override
Deletes this xtd::io::directory_info if it is empty.
xtd::io::directory_info::directory_iterator enumerate_directories(const xtd::string &search_pattern) const
Returns an enumerable collection of directory information that matches a specified search pattern.
xtd::string name() const override
Gets the name of this xtd::io::directory_info instance.
void create()
Creates a directory.
xtd::array< xtd::io::directory_info > get_directories(const xtd::string &search_pattern) const
Returns an array of directories in the current DirectoryInfo matching the given search criteria.
xtd::io::directory_info create_subdirectory(const xtd::string &path) const
Creates a subdirectory or subdirectories on the specified path. The specified path can be relative to...
void move_to(const xtd::string &dest_dir_name)
Moves a DirectoryInfo instance and its contents to a new path.
xtd::io::directory_info::file_iterator enumerate_files() const
Returns an enumerable collection of file information in the current directory.
xtd::array< xtd::sptr< xtd::io::file_system_info > > get_file_system_infos() const
Returns an array of strongly typed xtd::io::file_system_info entries representing all the files and s...
xtd::io::directory_info::directory_iterator enumerate_directories() const
Returns an enumerable collection of directory information in the current directory.
xtd::array< xtd::sptr< xtd::io::file_system_info > > get_file_system_infos(const xtd::string &search_pattern) const
Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories...
xtd::io::directory_info root() const
Gets the root portion of the directory.
static const directory_info empty
Represents the uninitialized xtd::io::directory_info object. This field is constant.
Definition directory_info.hpp:241
xtd::io::directory_info::file_system_info_iterator enumerate_file_system_infos(const xtd::string &search_pattern) const
Returns an enumerable collection of file system information that matches a specified search pattern.
Exposes static methods for creating, moving, and enumerating through directories and subdirectories....
Definition directory.hpp:102
Provides static methods for the creation, copying, deletion, moving, and opening of files,...
Definition file_info.hpp:41
Provides the base class for both xtd::io::file_info and xtd::io::directory_info objects.
Definition file_system_info.hpp:87
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::file_system_info class.
@ io
I/O erreror occurs.
#define core_export_
Define shared library export.
Definition core_export.hpp:13
int32_t int32
Represents a 32-bit signed integer.
Definition int32.hpp:23
@ begin
Specifies the beginning of a stream.
@ directory
The file is a directory.
@ 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