Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Cette page documente l’implémentation préstandard std::experimental::filesystem::path Microsoft supprimée fournie par l’en-tête<experimental/filesystem>. Ce n’est pas la classe C++17 std::filesystem::path . Cette implémentation préstandard est basée sur la spécification technique du système de fichiers (N4100) et les versions antérieures C++17 std::filesystem. L’en-tête <experimental/filesystem> et l’espace std::experimental::filesystem de noms sont supprimés à partir de l’ensemble d’outils Visual C++ Microsoft 14.51. Pour connaître l’implémentation actuelle de C++17 prise en charge, consultez path la classe.
La path classe stocke un objet de type string_type, appelé myname ici à des fins d’exposition, adapté à une utilisation comme nom de chemin d’accès.
string_typeest un synonyme pour basic_string<value_type>, où value_type est un synonyme de wchar_t Windows.
Syntax
class path;
Constructors
| Constructor | Description |
|---|---|
path |
Construit un objet path. |
Typedefs
| Nom de type | Description |
|---|---|
const_iterator |
Synonyme de iterator. |
iterator |
Itérateur de constante bidirectionnelle qui désigne les path composants de myname. |
string_type |
Le type est un synonyme de basic_string<value_type>. |
Fonctions Membre
| Fonction membre | Description |
|---|---|
append |
Ajoute la séquence spécifiée à myname, convertie et insérée une preferred_separator en fonction des besoins. |
assign |
Remplace par myname la séquence spécifiée, convertie en fonction des besoins. |
begin |
Retourne une path::iterator valeur désignant le premier élément de chemin d’accès dans le chemin d’accès, le cas échéant. |
c_str |
Retourne un pointeur vers le premier caractère dans myname. |
clear |
Exécute myname.clear(). |
compare |
Retourne des valeurs de comparaison. |
concat |
Ajoute la séquence spécifiée à myname, convertie (mais pas l’insertion d’un séparateur) selon les besoins. |
empty |
Retourne myname.empty(). |
end |
Retourne un itérateur de fin de séquence de type iterator. |
extension |
Retourne le suffixe de filename(). |
filename |
Retourne le composant de nom de fichier de myname, en particulier empty() ? path() : *--end(). Le composant peut être vide. |
generic_string |
Retourne this->string<Elem, Traits, Alloc>(al) avec (sous Windows) toutes les barres obliques inverses converties en barre oblique. |
generic_u16string |
Retourne u16string() avec (sous Windows) toutes les barres obliques inverses converties en barre oblique. |
generic_u32string |
Supprimé dans l’implémentation MSVC historique. |
generic_u8string |
Retourne u8string() avec (sous Windows) toutes les barres obliques inverses converties en barre oblique. |
generic_wstring |
Retourne wstring() avec (sous Windows) toutes les barres obliques inverses converties en barre oblique. |
has_extension |
Retourne !extension().empty(). |
has_filename |
Retourne !filename().empty(). |
has_parent_path |
Retourne !parent_path().empty(). |
has_relative_path |
Retourne !relative_path().empty(). |
has_root_directory |
Retourne !root_directory().empty(). |
has_root_name |
Retourne !root_name().empty(). |
has_root_path |
Retourne !root_path().empty(). |
has_stem |
Retourne !stem().empty(). |
is_absolute |
Pour Windows, la fonction retourne has_root_name() && has_root_directory(). Pour POSIX, la fonction retourne has_root_directory(). |
is_relative |
Retourne !is_absolute(). |
make_preferred |
Convertit chaque séparateur en fonction preferred_separator des besoins. |
native |
Retourne la représentation native du chemin d’accès. |
parent_path |
Retourne le composant de chemin d’accès parent de myname. |
preferred_separator |
L’objet constant donne le caractère préféré pour séparer les composants de chemin d’accès, en fonction du système d’exploitation hôte. |
relative_path |
Retourne le composant de chemin d’accès relatif de myname. |
remove_filename |
Supprime le nom de fichier. |
replace_extension |
Remplace l’extension de myname. |
replace_filename |
Remplace le nom de fichier. |
root_directory |
Retourne le composant de répertoire racine de myname. |
root_name |
Retourne le composant de nom racine de myname. |
root_path |
Retourne le composant de chemin d’accès racine de myname. |
stem |
Retourne le stem composant de myname. |
string |
Convertit la séquence stockée dans myname. |
swap |
Exécute swap(myname, right.myname). |
u16string |
Convertit la séquence stockée en myname UTF-16 et la retourne stockée dans un objet de type u16string. |
u32string |
Supprimé dans l’implémentation MSVC historique. |
u8string |
Convertit la séquence stockée en myname UTF-8 et la retourne stockée dans un objet de type u8string. |
value_type |
Le type décrit les éléments de chemin d’accès favorisés par le système d’exploitation hôte. |
wstring |
Convertit la séquence stockée dans myname l’encodage favorisée par le système hôte pour une wchar_t séquence et la renvoie stockée dans un objet de type wstring. |
Operators
| Opérateur | Description |
|---|---|
operator= |
Remplace les éléments du chemin d’accès par une copie d’un autre chemin. |
operator+= |
Différentes concat expressions. |
operator/= |
Différentes append expressions. |
operator string_type |
Retourne myname. |
Spécifications
En-tête :<experimental/filesystem>
Noms:std::experimental::filesystem
path::append
Ajoute la séquence spécifiée à myname, convertie et insérée selon preferred_separator les besoins.
template <class Source>
path& append(const Source& source);
template <class InIt>
path& append(InIt first, InIt last);
Parameters
source
Séquence spécifiée.
first
Début de la séquence spécifiée.
last
Fin de la séquence spécifiée.
path::assign
Remplace par myname la séquence spécifiée, convertie en fonction des besoins.
template <class Source>
path& assign(const Source& source);
template <class InIt>
path& assign(InIt first, InIt last);
Parameters
source
Séquence spécifiée.
first
Début de la séquence spécifiée.
last
Fin de la séquence spécifiée.
path::begin
Retourne une path::iterator valeur désignant le premier élément de chemin d’accès dans le chemin d’accès, le cas échéant.
iterator begin() const;
path::c_str
Retourne un pointeur vers le premier caractère dans myname.
const value_type* c_str() const noexcept;
path::clear
Exécute myname.clear().
void clear() noexcept;
path::compare
La première fonction retourne myname.compare(pval.native()). La deuxième fonction retourne myname.compare(str). La troisième fonction retourne myname.compare(ptr).
int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(const value_type *ptr) const;
Parameters
pval
Chemin d’accès à comparer.
str
Chaîne à comparer.
ptr
Pointeur à comparer.
path::concat
Ajoute la séquence spécifiée à myname, convertie (mais pas l’insertion d’un séparateur) selon les besoins.
template <class Source>
path& concat(const Source& source);
template <class InIt>
path& concat(InIt first, InIt last);
Parameters
source
Séquence spécifiée.
first
Début de la séquence spécifiée.
last
Fin de la séquence spécifiée.
path::const_iterator
Synonyme de iterator.
typedef iterator const_iterator;
path::empty
Retourne myname.empty().
bool empty() const noexcept;
path::end
Retourne un itérateur de fin de séquence de type iterator.
iterator end() const;
path::extension
Retourne le suffixe de filename().
path extension() const;
Remarques
Retourne le suffixe de filename() X telle sorte que :
Si X == path(".") || X == path("..") ou s’il X ne contient aucun point, le suffixe est vide.
Sinon, le suffixe commence par (et inclut) le point le plus à droite.
path::filename
Retourne le composant de nom de fichier de myname, en particulier empty() ? path() : *--end(). Le composant peut être vide.
path filename() const;
path::generic_string
Retourne this->string<Elem, Traits, Alloc>(al) avec (sous Windows) toutes les barres obliques inverses converties en barre oblique.
template <class Elem,
class Traits = char_traits<Elem>,
class Alloc = allocator<Elem>>
basic_string<Elem, Traits, Alloc>
generic_string(const Alloc& al = Alloc()) const;
string generic_string() const;
path::generic_u16string
Retourne u16string() avec (sous Windows) toutes les barres obliques inverses converties en barre oblique.
u16string generic_u16string() const;
path::generic_u32string
Cette fonction est supprimée dans l’implémentation MSVC historique.
u32string generic_u32string() const = delete;
path::generic_u8string
Retourne u8string() avec (sous Windows) toutes les barres obliques inverses converties en barre oblique.
string generic_u8string() const;
path::generic_wstring
Retourne wstring() avec (sous Windows) toutes les barres obliques inverses converties en barre oblique.
wstring generic_wstring() const;
path::has_extension
Retourne !extension().empty().
bool has_extension() const;
path::has_filename
Retourne !filename().empty().
bool has_filename() const;
path::has_parent_path
Retourne !parent_path().empty().
bool has_parent_path() const;
path::has_relative_path
Retourne !relative_path().empty().
bool has_relative_path() const;
path::has_root_directory
Retourne !root_directory().empty().
bool has_root_directory() const;
path::has_root_name
Retourne !root_name().empty().
bool has_root_name() const;
path::has_root_path
Retourne !root_path().empty().
bool has_root_path() const;
path::has_stem
Retourne !stem().empty().
bool has_stem() const;
path::is_absolute
Pour Windows, la fonction retourne has_root_name() && has_root_directory(). Pour POSIX, la fonction retourne has_root_directory().
bool is_absolute() const;
path::is_relative
Retourne !is_absolute().
bool is_relative() const;
path::iterator
Itérateur de constante bidirectionnelle qui désigne les composants de chemin d’accès de myname.
class iterator
{
// bidirectional iterator for path
typedef bidirectional_iterator_tag iterator_category;
typedef path_type value_type;
typedef ptrdiff_t difference_type;
typedef const value_type *pointer;
typedef const value_type& reference;
// ...
};
Remarques
La classe décrit un itérateur de constante bidirectionnelle qui désigne les path composants de myname la séquence :
nom racine, le cas échéant
le répertoire racine, s’il est présent
les éléments de répertoire restants du parent
path, s’ils sont présents, se terminant par le nom de fichier, le cas échéant
Pour pval un objet de type path:
path::iterator X = pval.begin()désigne le premierpathélément du chemin d’accès, le cas échéant.X == pval.end()esttruelorsque lesXpoints juste après la fin de la séquence de composants.*Xretourne une chaîne qui correspond au composant actuel++Xdésigne le composant suivant dans la séquence, le cas échéant.--Xdésigne le composant précédent dans la séquence, le cas échéant.mynameLa modification invalide tous les itérateurs désignant des éléments dansmyname.
path::make_preferred
Convertit chaque séparateur en fonction preferred_separator des besoins.
path& make_preferred();
path::native
Obtenez la représentation sous forme de chaîne native du chemin d’accès.
const string_type& native() const noexcept;
Remarques
Le chemin d’accès est disponible dans un format générique portable (voir generic_string()) ou dans le format natif du chemin. Cette fonction retourne la chaîne native. Sur un système POSIX, le format générique et le format natif sont identiques.
Dans l’exemple suivant s’exécutant sur Windows, la chaîne de chemin générique est c:/t/temp.txt et la chaîne native est c:\t\temp.txt.
// Compile with /std:c++14 and _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING defined.
#include <experimental/filesystem>
int main()
{
std::experimental::filesystem::path p(LR"(c:\t\temp.txt)");
auto native = p.native(); // Windows: L"c:\\t\\temp.txt"
auto generic = p.generic_string(); // Windows: "c:/t/temp.txt"
}
path::operator=
Remplace les éléments du chemin d’accès par une copie d’un autre chemin.
path& operator=(const path& right);
path& operator=(path&& right) noexcept;
template <class Source>
path& operator=(const Source& source);
Parameters
right
En path cours de copie dans le path.
source
pathSource .
Remarques
Le premier opérateur membre copie right.myname vers myname. Le deuxième opérateur membre passe right.myname à myname. Le troisième opérateur membre se comporte de la même façon que *this = path(source).
path::operator+=
Différentes concat expressions.
path& operator+=(const path& right);
path& operator+=(const string_type& str);
path& operator+=(const value_type *ptr);
path& operator+=(value_type elem);
template <class Source>
path& operator+=(const Source& source);
template <class Elem>
path& operator+=(Elem elem);
Parameters
right
Chemin d’accès ajouté.
str
Chaîne ajoutée.
ptr
Pointeur ajouté.
elem
value_type Ajout ou Elem.
source
Source ajoutée.
Remarques
Les fonctions membres se comportent de la même façon que les expressions correspondantes suivantes :
concat(right);concat(path(str));concat(ptr);concat(string_type(1, elem));concat(source);concat(path(basic_string<Elem>(1, elem)));
path::operator/=
Différentes append expressions.
path& operator/=(const path& right);
template <class Source>
path& operator/=(const Source& source);
Parameters
right
Chemin d’accès ajouté.
source
Source ajoutée.
Remarques
Les fonctions membres se comportent de la même façon que les expressions correspondantes suivantes :
append(right);append(source);
path::operator string_type
Retourne myname.
operator string_type() const;
path::parent_path
Retourne le composant de chemin d’accès parent de myname.
path parent_path() const;
Remarques
Retourne le composant de chemin d’accès parent de myname, en particulier le préfixe d’après myname la suppression filename().native() et tous les séparateurs de répertoires immédiatement précédents. (De même, si begin() != end(), c’est la combinaison de tous les éléments de la plage [begin(), --end()) en appliquant operator/=successivement .) Le composant peut être vide.
path::path
Construit de path différentes façons.
path();
path(const path& right);
path(path&& right) noexcept;
template <class Source>
path(const Source& source);
template <class Source>
path(const Source& source, const locale& loc);
template <class InIt>
path(InIt first, InIt last);
template <class InIt>
path(InIt first, InIt last, const locale& loc);
Parameters
right
Chemin d’accès dont le chemin construit doit être une copie.
source
Source de laquelle le chemin construit doit être une copie.
loc
Paramètres régionaux spécifiés.
first
Position du premier élément à copier.
last
Position du dernier élément à copier.
Remarques
Les constructeurs sont tous construits myname de différentes manières :
Pour path() ça, c’est myname().
Pour path(const path& right) c’est myname(right.myname).
Pour path(path&& right) ça, c’est myname(right.myname).
Pour template<class Source> path(const Source& source) ça, c’est myname(source).
Pour template<class Source> path(const Source& source, const locale& loc) cela, myname(source)obtenez toutes les facettes nécessaires codecvt à partir de loc.
Pour template<class InIt> path(InIt first, InIt last) ça, c’est myname(first, last).
Pour template<class InIt> path(InIt first, InIt last, const locale& loc) cela, myname(first, last)obtenez toutes les facettes nécessaires codecvt à partir de loc.
path::preferred_separator
L’objet constant donne le caractère préféré pour séparer les composants de chemin d’accès, en fonction du système d’exploitation hôte.
#if _WIN32_C_LIB
static constexpr value_type preferred_separator = L'\\';
#else // assume POSIX
static constexpr value_type preferred_separator = '/';
#endif // filesystem model now defined
Remarques
Il est également permis dans la plupart des contextes sous Windows d'utiliser L'/' à sa place.
path::relative_path
Retourne le composant de chemin d’accès relatif de myname.
path relative_path() const;
Remarques
Retourne le composant de chemin d’accès relatif de myname, en particulier le suffixe d’après myname la suppression root_path().native() et les séparateurs de répertoires redondants immédiatement suivants. Le composant peut être vide.
path::remove_filename
Supprime le nom de fichier.
path& remove_filename();
path::replace_extension
Remplace l’extension de myname.
path& replace_extension(const path& newext = path());
Parameters
newext
Nouvelle extension.
Remarques
Supprime d’abord le suffixe extension().native() de myname. Ensuite, si !newext.empty() && newext[0] != dot (où se trouve le point*path(".").c_str()), le point est ajouté à myname. Ensuite newext , il est ajouté à myname.
path::replace_filename
Remplace le nom de fichier.
path& replace_filename(const path& pval);
Parameters
pval
Chemin d’accès du nom de fichier.
Remarques
La fonction membre s’exécute :
remove_filename();
*this /= pval;
return (*this);
path::root_directory
Retourne le composant de répertoire racine de myname.
path root_directory() const;
Remarques
Le composant peut être vide.
path::root_name
Retourne le composant de nom racine de myname.
path root_name() const;
Remarques
Le composant peut être vide.
path::root_path
Retourne le composant de chemin d’accès racine de myname.
path root_path() const;
Remarques
Retourne le composant de chemin d’accès racine de myname, en particulier / root_name()root_directory . Le composant peut être vide.
path::stem
Retourne le stem composant de myname.
path stem() const;
Remarques
Retourne le stem composant de myname, en particulier filename().native() avec n’importe quelle fin extension().native() supprimée. Le composant peut être vide.
path::string
Convertit la séquence stockée dans myname.
template <class Elem, class Traits = char_traits<Elem>, class Alloc = allocator<Elem>>
basic_string<Elem, Traits, Alloc> string(const Alloc& al = Alloc()) const;
string string() const;
Remarques
La première fonction membre (modèle) convertit la séquence stockée de myname la même façon que :
string()pourstring<char, Traits, Alloc>()wstring()pourstring<wchar_t, Traits, Alloc>()u16string()pourstring<char16_t, Traits, Alloc>()
La deuxième fonction membre convertit la séquence stockée dans myname l’encodage favorisée par le système hôte pour une char séquence et la retourne stockée dans un objet de type string.
path::string_type
Le type est un synonyme de basic_string<value_type>.
typedef basic_string<value_type> string_type;
path::swap
Exécute swap(myname, right.myname).
void swap(path& right) noexcept;
path::u16string
Convertit la séquence stockée en myname UTF-16 et la retourne stockée dans un objet de type u16string.
u16string u16string() const;
path::u32string
Cette fonction est supprimée dans l’implémentation MSVC historique.
u32string u32string() const = delete;
path::u8string
Convertit la séquence stockée en myname UTF-8 et la retourne stockée dans un objet de type u8string.
string u8string() const;
path::value_type
Le type décrit les path éléments favorisés par le système d’exploitation hôte.
#if _WIN32_C_LIB
typedef wchar_t value_type;
#else // assume POSIX
typedef char value_type;
#endif // filesystem model now defined
path::wstring
Convertit la séquence stockée dans myname l’encodage favorisée par le système hôte pour une wchar_t séquence et la renvoie stockée dans un objet de type wstring.
wstring wstring() const;
Voir aussi
<experimental/filesystem>
<experimental/filesystem> opérateurs