xtd 0.2.0
Loading...
Searching...
No Matches
directory_info.h
Go to the documentation of this file.
1
4#pragma once
5#include "file_system_info.h"
6#include "../iequatable.h"
7#include <iterator>
8#include <memory>
9
11namespace xtd {
13 namespace io {
15 class directory;
16 class file_info;
18
128 public:
130 class directory_iterator : public xtd::iequatable<directory_iterator> {
131 struct data;
132
133 explicit directory_iterator(const xtd::ustring& path, const xtd::ustring& pattern);
134 public:
136 using iterator_category = std::input_iterator_tag;
137 using value_type = xtd::io::directory_info;
138 using difference_type = xtd::io::directory_info;
139 using pointer = xtd::io::directory_info*;
140 using reference = xtd::io::directory_info&;
141
143 directory_iterator(const directory_iterator&) = default;
145
146 directory_iterator& operator ++();
147 directory_iterator operator ++(int32);
148 value_type operator *() const;
151 bool equals(const directory_iterator& other) const noexcept override;
152
153 xtd::ustring path() const;
154 xtd::ustring pattern() const;
156
157 private:
158 friend xtd::io::directory;
160
161 std::shared_ptr<data> data_;
162 };
163
165 class file_iterator : public xtd::iequatable<file_iterator> {
166 struct data;
167
168 explicit file_iterator(const std::string& path, const std::string& pattern);
169 public:
171 using iterator_category = std::input_iterator_tag;
172 using value_type = xtd::io::file_info;
173 using difference_type = xtd::io::file_info;
174 using pointer = xtd::io::file_info*;
175 using reference = xtd::io::file_info&;
176
178 file_iterator(const file_iterator&) = default;
179 file_iterator(file_iterator&&) = default;
180
181 file_iterator& operator ++();
182 file_iterator operator ++(int32);
183 value_type operator *() const;
186 bool equals(const file_iterator& other) const noexcept override;
187
188 xtd::ustring path() const;
189 xtd::ustring pattern() const;
191
192 private:
193 friend xtd::io::directory;
195
196 std::shared_ptr<data> data_;
197 };
198
200 class file_system_info_iterator : public xtd::iequatable<file_system_info_iterator> {
201 struct data;
202
203 explicit file_system_info_iterator(const std::string& path, const std::string& pattern);
204 public:
206 using iterator_category = std::input_iterator_tag;
207 using value_type = std::shared_ptr<xtd::io::file_system_info>;
208 using difference_type = std::shared_ptr<xtd::io::file_system_info>;
209 using pointer = std::shared_ptr<xtd::io::file_system_info>* ;
210 using reference = std::shared_ptr<xtd::io::file_system_info>& ;
211
215
216 file_system_info_iterator& operator ++();
217 file_system_info_iterator operator ++(int32);
218 value_type operator *() const;
221 bool equals(const file_system_info_iterator& other) const noexcept override;
222
223 xtd::ustring path() const;
224 xtd::ustring pattern() const;
226
227 private:
228 friend xtd::io::directory;
230
231 std::shared_ptr<data> data_;
232 };
233
235
238 static const directory_info empty;
240
242
285
287
333 bool exists() const override;
334
359 xtd::ustring name() const override;
360
401
441
443
487 void create();
488
535
595
771
809
847 std::vector<xtd::io::directory_info> get_directories() const;
895 std::vector<xtd::io::directory_info> get_directories(const xtd::ustring& search_pattern) const;
896
966 std::vector<xtd::io::file_info> get_files() const;
1043 std::vector<xtd::io::file_info> get_files(const xtd::ustring& search_pattern) const;
1044
1128 std::vector<std::shared_ptr<xtd::io::file_system_info>> get_file_system_infos() const;
1223 std::vector<std::shared_ptr<xtd::io::file_system_info>> get_file_system_infos(const xtd::ustring& search_pattern) const;
1224
1277 void move_to(const xtd::ustring& dest_dir_name);
1278
1316 void remove() const override;
1317
1361 void remove(bool recursive) const;
1363
1364 private:
1365 directory_info() = default;
1366 };
1367 }
1368}
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:18
Represent directory iterator used by xtd::io::directory_info.
Definition directory_info.h:130
Represent file iterator used by xtd::io::directory_info.
Definition directory_info.h:165
Represent file system iterator used by xtd::io::directory_info.
Definition directory_info.h:200
Exposes instance methods for creating, moving, and enumerating through directories and subdirectories...
Definition directory_info.h:127
std::vector< std::shared_ptr< xtd::io::file_system_info > > get_file_system_infos(const xtd::ustring &search_pattern) const
Retrieves an array of strongly typed FileSystemInfo objects representing the files and subdirectories...
directory_info(const xtd::ustring &path)
Initializes a new instance of the xtd::io::directory_info class on the specified path.
std::vector< xtd::io::file_info > get_files(const xtd::ustring &search_pattern) const
Returns a file list from the current directory matching the given search pattern.
xtd::io::directory_info parent() const
Gets the parent directory of a specified subdirectory.
xtd::ustring name() const override
Gets the name of this xtd::io::directory_info instance.
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_system_info_iterator enumerate_file_system_infos(const xtd::ustring &search_pattern) const
Returns an enumerable collection of file system information that matches a specified search pattern.
xtd::io::directory_info create_subdirectory(const xtd::ustring &path) const
Creates a subdirectory or subdirectories on the specified path. The specified path can be relative to...
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.
void move_to(const xtd::ustring &dest_dir_name)
Moves a DirectoryInfo instance and its contents to a new path.
std::vector< xtd::io::directory_info > get_directories() const
Returns the subdirectories of the current directory.
void create()
Creates a directory.
xtd::io::directory_info::directory_iterator enumerate_directories(const xtd::ustring &search_pattern) const
Returns an enumerable collection of directory information that matches a specified search pattern.
std::vector< xtd::io::file_info > get_files() const
Returns a file list from the current directory.
std::vector< xtd::io::directory_info > get_directories(const xtd::ustring &search_pattern) const
Returns an array of directories in the current DirectoryInfo matching the given search criteria.
xtd::io::directory_info::file_iterator enumerate_files(const xtd::ustring &search_pattern) const
Returns an enumerable collection of file information that matches a search pattern.
xtd::io::directory_info::file_iterator enumerate_files() const
Returns an enumerable collection of file information in the current directory.
xtd::io::directory_info::directory_iterator enumerate_directories() const
Returns an enumerable collection of directory information in the current directory.
std::vector< std::shared_ptr< 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 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.h:238
Exposes static methods for creating, moving, and enumerating through directories and subdirectories....
Definition directory.h:99
Provides static methods for the creation, copying, deletion, moving, and opening of files,...
Definition file_info.h:39
Provides the base class for both xtd::io::file_info and xtd::io::directory_info objects.
Definition file_system_info.h:85
Performs operations on std::basic_string instances that contain file or directory path information....
Definition path.h:34
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
Contains xtd::io::file_system_info class.
#define core_export_
Define shared library export.
Definition core_export.h:13
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
@ 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.h:10