xtd 0.2.0
Loading...
Searching...
No Matches
path.h
Go to the documentation of this file.
1
4#pragma once
5#include "file.h"
6#include "../core_export.h"
7#include "../static.h"
8#include "../ustring.h"
9#include <algorithm>
10#include <cstdlib>
11#include <random>
12#include <regex>
13#include <sstream>
14
15//#include <iostream>
16
18namespace xtd {
20 namespace io {
35 public:
37
46 template<typename char_t>
47 static char_t alt_directory_separator_char() noexcept {return static_cast<char_t>(alt_directory_separator_char());}
48
56 static char alt_directory_separator_char() noexcept;
57
64 template<typename char_t>
65 static char_t directory_separator_char() noexcept {
66 return static_cast<char_t>(directory_separator_char());
67 }
68
75 static char directory_separator_char() noexcept;
76
81 template<typename char_t>
82 static char_t path_separator() noexcept {return static_cast<char_t>(path_separator());}
83
88 static char path_separator() noexcept;
89
94 template<typename char_t>
95 static char_t volume_separator_char() noexcept {return static_cast<char_t>(volume_separator_char());}
96
101 static char volume_separator_char() noexcept;
103
105
118 static xtd::ustring change_extension(const xtd::ustring& path, const xtd::ustring& extension);
119
125 static xtd::ustring combine(const xtd::ustring& path1, const xtd::ustring& path2);
126
133 template<typename type1_t, typename type2_t, typename type3_t>
134 static auto combine(type1_t path1, type2_t path2, type3_t path3) noexcept {
135 return combine(combine(path1, path2), path3);
136 }
137
145 template<typename type1_t, typename type2_t, typename type3_t, typename type4_t>
146 static auto combine(type1_t path1, type2_t path2, type3_t path3, type4_t path4) noexcept {
147 return combine(combine(combine(path1, path2), path3), path4);
148 }
149
154 template<typename path_t>
155 static xtd::ustring combine(path_t paths) noexcept {
156 xtd::ustring result;
157 std::for_each(paths.begin(), paths.end(), [&](auto path) {result = combine(result, path);});
158 return result;
159 }
160
165 static xtd::ustring combine(const std::initializer_list<xtd::ustring>& paths) noexcept;
166
172
178
184
190
195
199 template<typename char_t>
200 static std::vector<char_t> get_invalid_path_chars() noexcept {return {34, 60, 62, 124, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 0};}
201
205 static std::vector<char> get_invalid_path_chars() noexcept;
206
212 static xtd::ustring get_path_root(const xtd::ustring& path);
213
218 static xtd::ustring get_random_file_name();
224 static xtd::ustring get_random_file_name(size_t name_length);
230 static xtd::ustring get_random_file_name(size_t name_size, size_t extension_size);
231
237 static xtd::ustring get_temp_file_name();
238
246 static xtd::ustring get_temp_path() noexcept;
247
253 static bool has_extension(const xtd::ustring& path);
254
260 static bool is_path_rooted(const xtd::ustring& path);
262
263 private:
264 static int32 __get_index_path_rooted(const xtd::ustring& path);
265 static bool __is_drive(const xtd::ustring& path) noexcept;
266 };
267 }
268}
Performs operations on std::basic_string instances that contain file or directory path information....
Definition path.h:34
static char_t volume_separator_char() noexcept
Provides a platform-specific volume separator character.
Definition path.h:95
static xtd::ustring get_extension(const xtd::ustring &path)
Returns the extension of the specified path string.
static xtd::ustring get_file_name_without_extension(const xtd::ustring &path)
Returns the file name of the specified path string without the extension.
static char path_separator() noexcept
A platform-specific separator character used to separate path strings in environment variables.
static xtd::ustring get_full_path(const xtd::ustring &path)
Returns the absolute path for the specified path string.
static std::vector< char_t > get_invalid_path_chars() noexcept
Gets an array containing the characters that are not allowed in path names.
Definition path.h:200
static xtd::ustring get_directory_name(const xtd::ustring &path)
Returns the directory information for the specified path string.
static char_t alt_directory_separator_char() noexcept
Provides a platform-specific alternate character used to separate directory levels in a path string t...
Definition path.h:47
static auto combine(type1_t path1, type2_t path2, type3_t path3, type4_t path4) noexcept
Combines four path strings.
Definition path.h:146
static char volume_separator_char() noexcept
Provides a platform-specific volume separator character.
static xtd::ustring get_file_name(const xtd::ustring &path)
Returns the file name and extension of the specified path string.
static std::vector< char > get_invalid_path_chars() noexcept
Gets an array containing the characters that are not allowed in path names.
static xtd::ustring combine(const std::initializer_list< xtd::ustring > &paths) noexcept
Combines path strings array.
static char alt_directory_separator_char() noexcept
Provides a platform-specific alternate character used to separate directory levels in a path string t...
static xtd::ustring combine(path_t paths) noexcept
Combines path strings array.
Definition path.h:155
static char_t path_separator() noexcept
A platform-specific separator character used to separate path strings in environment variables.
Definition path.h:82
static char directory_separator_char() noexcept
Provides a platform-specific character used to separate directory levels in a path string that reflec...
Represents text as a sequence of UTF-8 code units.
Definition ustring.h:47
Contains xtd::io::file 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
int_least32_t int32
Represents a 32-bit signed integer.
Definition types.h:131
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10