xtd 0.2.0
Loading...
Searching...
No Matches
directory.h
Go to the documentation of this file.
1
4#pragma once
5#include "directory_info.h"
6#include "../core_export.h"
7#include "../date_time.h"
8#include "../iequatable.h"
9#include "../static.h"
10#include <tuple>
11
13namespace xtd {
15 namespace io {
102 public:
104 class directory_iterator : public xtd::iequatable<directory_iterator> {
105 struct data;
106
107 explicit directory_iterator(const xtd::string& path, const xtd::string& pattern);
108 public:
110 using iterator_category = std::input_iterator_tag;
111 using value_type = xtd::string;
112 using difference_type = xtd::string;
113 using pointer = xtd::string*;
114 using reference = xtd::string&;
115
117 directory_iterator(const directory_iterator&) = default;
119
120 directory_iterator& operator ++();
121 directory_iterator operator ++(int32);
122 value_type operator *() const;
125 bool equals(const directory_iterator& other) const noexcept override;
127
128 private:
129 friend xtd::io::directory;
130
131 xtd::sptr<data> data_;
132 };
133
135 class file_iterator : public xtd::iequatable<file_iterator> {
136 struct data;
137
138 explicit file_iterator(const std::string& path, const std::string& pattern);
139 public:
141 using iterator_category = std::input_iterator_tag;
142 using value_type = xtd::string;
143 using difference_type = xtd::string;
144 using pointer = xtd::string*;
145 using reference = xtd::string&;
146
148 file_iterator(const file_iterator&) = default;
149 file_iterator(file_iterator&&) = default;
150
151 file_iterator& operator ++();
152 file_iterator operator ++(int);
153 value_type operator *() const;
156 bool equals(const file_iterator& other) const noexcept override;
158
159 private:
160 friend xtd::io::directory;
161
162 xtd::sptr<data> data_;
163 };
164
166 class file_system_entry_iterator : public xtd::iequatable<file_system_entry_iterator> {
167 struct data;
168
169 explicit file_system_entry_iterator(const std::string& path, const std::string& pattern);
170 public:
172 using iterator_category = std::input_iterator_tag;
173 using value_type = xtd::string;
174 using difference_type = xtd::string;
175 using pointer = xtd::string*;
176 using reference = xtd::string&;
177
181
182 file_system_entry_iterator& operator ++();
184 value_type operator *() const;
187 bool equals(const file_system_entry_iterator& other) const noexcept override;
189
190 private:
191 friend xtd::io::directory;
192
193 xtd::sptr<data> data_;
194 };
195
197
257
354
443
474
530 static bool exists(const xtd::string& path);
531
574
617
679 static std::vector<xtd::string> get_directories(const xtd::string& path);
727 static std::vector<xtd::string> get_directories(const xtd::string& path, const xtd::string& search_pattern);
728
770
833 static std::vector<xtd::string> get_files(const xtd::string& path);
887 static std::vector<xtd::string> get_files(const xtd::string& path, const xtd::string& search_pattern);
888
1001 static std::vector<xtd::string> get_file_system_entries(const xtd::string& path);
1126 static std::vector<xtd::string> get_file_system_entries(const xtd::string& path, const xtd::string& search_pattern);
1127
1179
1230
1335 static std::vector<xtd::string> get_logical_drives();
1336
1449
1455
1491 static void move(const xtd::string& source_dir_name, const xtd::string& dest_dir_name);
1492
1536 static void remove(const xtd::string& path);
1537
1586 static void remove(const xtd::string& path, bool recursive);
1587
1643 static void set_creation_time(const xtd::string& path, const xtd::date_time& creation_time);
1699 static void set_creation_time(const xtd::string& path, time_t creation_time);
1700
1745
1792 static void set_last_access_time(const xtd::string& path, const xtd::date_time& last_access_time);
1793
1840 static void set_last_write_time(const xtd::string& path, const xtd::date_time& last_write_time);
1841
1854
1855 private:
1856 static std::tuple<time_t, time_t, time_t> get_file_times(const string& path);
1857 };
1858 }
1859}
Represents text as a sequence of character units.
Definition basic_string.h:79
Represents an instant in time, typically expressed as a date and time of day.
Definition date_time.h:85
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:22
Represent directory iterator used by xtd::io::directory.
Definition directory.h:104
Represent file iterator used by xtd::io::directory.
Definition directory.h:135
Represent file system iterator used by xtd::io::directory.
Definition directory.h:166
Exposes instance methods for creating, moving, and enumerating through directories and subdirectories...
Definition directory_info.h:129
Exposes static methods for creating, moving, and enumerating through directories and subdirectories....
Definition directory.h:101
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::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 std::vector< xtd::string > get_directories(const xtd::string &path)
Returns the names of subdirectories (including their paths) in the specified directory.
static void set_current_directory(const xtd::string &path)
Sets the application's current working directory to the specified directory.
static std::vector< xtd::string > get_logical_drives()
Retrieves the names of the logical drives on this computer in the form "<drive letter>:\".
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 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 std::vector< 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 std::vector< xtd::string > get_files(const xtd::string &path)
Returns the names of files (including their paths) in the specified directory.
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 std::vector< 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 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 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::io::file_permissions get_permissions(const xtd::string &path)
Gets the xtd::io::file_permissions of the directory on the path.
static std::vector< 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 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 std::vector< xtd::string > get_file_system_entries(const xtd::string &path)
Returns the names of all files and subdirectories in a specified path.
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.h:36
Contains xtd::io::directory_info class.
#define static_
This keyword is use to represent a static object. A static object can't be instantiated (constructors...
Definition static.h:37
#define core_export_
Define shared library export.
Definition core_export.h:13
xtd::basic_string< char > string
Represents text as a sequence of UTF-8 code units.
Definition __string_definitions.h:43
int32_t int32
Represents a 32-bit signed integer.
Definition int32.h:23
std::shared_ptr< type_t > sptr
The xtd::sptr object is a shared pointer.
Definition sptr.h:25
file_permissions
Provides permissions for files and directories.
Definition file_permissions.h:24
@ 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