<experimental/filesystem> padklasse

Important

Op deze pagina wordt de verwijderde Microsoft standaardimplementatie std::experimental::filesystem::path van de <experimental/filesystem> koptekst vastgelegd. Het is niet de C++17-klasse std::filesystem::path . Deze standaardimplementatie is gebaseerd op de technische specificatie van het bestandssysteem (N4100) en predates C++17 std::filesystem. De <experimental/filesystem> header en de std::experimental::filesystem naamruimte worden verwijderd vanaf de Microsoft Visual C++-toolset 14.51. Zie klasse voor de huidige, ondersteunde C++17-implementatiepath.

De path klasse slaat een object van het type string_typeop, hier genoemd myname voor de doeleinden van tentoonstelling, geschikt voor gebruik als padnaam. string_typeis een synoniem voor basic_string<value_type>, waar value_type is een synoniem voor wchar_t op Windows.

Syntaxis

class path;

Constructors

Constructeur Beschrijving
path Maakt een path.

Typedefs

Typenaam Beschrijving
const_iterator Een synoniem voor iterator.
iterator Een bidirectionele constante iterator die de path onderdelen van myname.
string_type Het type is een synoniem voor basic_string<value_type>.

Functies voor leden

Lid, functie Beschrijving
append Hiermee voegt u de opgegeven reeks toe aan myname, converteert en voegt u indien nodig een preferred_separator in.
assign myname Vervangt door de opgegeven reeks, naar behoefte geconverteerd.
begin Retourneert een path::iterator toewijzing van het eerste padelement in de padnaam, indien aanwezig.
c_str Retourneert een aanwijzer naar het eerste teken in myname.
clear myname.clear()Wordt uitgevoerd.
compare Retourneert vergelijkingswaarden.
concat Voegt de opgegeven reeks toe aan myname, geconverteerd (maar voeg indien nodig geen scheidingsteken in).
empty Retourneert myname.empty().
end Retourneert een end-of-sequence iterator van het type iterator.
extension Retourneert het achtervoegsel van filename().
filename Retourneert het bestandsbestandsonderdeel van myname, met name empty() ? path() : *--end(). Het onderdeel is mogelijk leeg.
generic_string Retourneert this->string<Elem, Traits, Alloc>(al) met (onder Windows) een backslash die wordt geconverteerd naar een slash.
generic_u16string Retourneert u16string() met (onder Windows) een backslash die wordt geconverteerd naar een slash.
generic_u32string Verwijderd in de historische MSVC-implementatie.
generic_u8string Retourneert u8string() met (onder Windows) een backslash die wordt geconverteerd naar een slash.
generic_wstring Retourneert wstring() met (onder Windows) een backslash die wordt geconverteerd naar een slash.
has_extension Retourneert !extension().empty().
has_filename Retourneert !filename().empty().
has_parent_path Retourneert !parent_path().empty().
has_relative_path Retourneert !relative_path().empty().
has_root_directory Retourneert !root_directory().empty().
has_root_name Retourneert !root_name().empty().
has_root_path Retourneert !root_path().empty().
has_stem Retourneert !stem().empty().
is_absolute Voor Windows retourneert has_root_name() && has_root_directory()de functie . Voor POSIX retourneert has_root_directory()de functie .
is_relative Retourneert !is_absolute().
make_preferred Converteert elk scheidingsteken naar een preferred_separator indien nodig.
native Retourneert de systeemeigen weergave van het pad.
parent_path Retourneert het bovenliggende padonderdeel van myname.
preferred_separator Het constante object geeft het voorkeursteken voor het scheiden van padonderdelen, afhankelijk van het hostbesturingssysteem.
relative_path Retourneert het relatieve padonderdeel van myname.
remove_filename Hiermee verwijdert u de bestandsnaam.
replace_extension Vervangt de extensie van myname.
replace_filename Vervangt de bestandsnaam.
root_directory Retourneert het hoofdmaponderdeel van myname.
root_name Retourneert het hoofdnaamonderdeel van myname.
root_path Retourneert het hoofdpadonderdeel van myname.
stem Retourneert het stem onderdeel van myname.
string Converteert de reeks die is opgeslagen in myname.
swap swap(myname, right.myname)Wordt uitgevoerd.
u16string Converteert de reeks die is opgeslagen in myname UTF-16 en retourneert deze opgeslagen in een object van het type u16string.
u32string Verwijderd in de historische MSVC-implementatie.
u8string Converteert de reeks die is opgeslagen in myname UTF-8 en retourneert deze opgeslagen in een object van het type u8string.
value_type Het type beschrijft de padelementen die worden aanbevolen door het hostbesturingssysteem.
wstring Converteert de reeks die is opgeslagen in myname de codering die wordt aanbevolen door het hostsysteem voor een wchar_t reeks en retourneert deze die is opgeslagen in een object van het type wstring.

Bedieners

Operator Beschrijving
operator= Vervangt de elementen van het pad door een kopie van een ander pad.
operator+= Verschillende concat expressies.
operator/= Verschillende append expressies.
operator string_type Retourneert myname.

Requirements

Rubriek:<experimental/filesystem>

Naamruimte:std::experimental::filesystem

path::append

Hiermee voegt u de opgegeven reeks toe aan myname, converteert en voegt u een zo nodig in preferred_separator .

template <class Source>
path& append(const Source& source);

template <class InIt>
path& append(InIt first, InIt last);

Parameters

source
Opgegeven reeks.

first
Begin van de opgegeven reeks.

last
Einde van de opgegeven reeks.

path::assign

myname Vervangt door de opgegeven reeks, naar behoefte geconverteerd.

template <class Source>
path& assign(const Source& source);

template <class InIt>
path& assign(InIt first, InIt last);

Parameters

source
Opgegeven reeks.

first
Begin van de opgegeven reeks.

last
Einde van de opgegeven reeks.

path::begin

Retourneert een path::iterator toewijzing van het eerste padelement in de padnaam, indien aanwezig.

iterator begin() const;

path::c_str

Retourneert een aanwijzer naar het eerste teken in myname.

const value_type* c_str() const noexcept;

path::clear

myname.clear()Wordt uitgevoerd.

void clear() noexcept;

path::compare

De eerste functie retourneert myname.compare(pval.native()). De tweede functie retourneert myname.compare(str). De derde functie retourneert 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
Pad om te vergelijken.

str
Tekenreeks om te vergelijken.

ptr
Aanwijzer om te vergelijken.

path::concat

Voegt de opgegeven reeks toe aan myname, geconverteerd (maar voeg indien nodig geen scheidingsteken in).

template <class Source>
path& concat(const Source& source);

template <class InIt>
path& concat(InIt first, InIt last);

Parameters

source
Opgegeven reeks.

first
Begin van de opgegeven reeks.

last
Einde van de opgegeven reeks.

path::const_iterator

Een synoniem voor iterator.

typedef iterator const_iterator;

path::empty

Retourneert myname.empty().

bool empty() const noexcept;

path::end

Retourneert een end-of-sequence iterator van het type iterator.

iterator end() const;

path::extension

Retourneert het achtervoegsel van filename().

path extension() const;

Opmerkingen

Retourneert het achtervoegsel van filename() X dat:

Als X == path(".") || X == path("..") het X achtervoegsel geen punt bevat, is het achtervoegsel leeg.

Anders begint het achtervoegsel met (en bevat) de meest rechtse punt.

path::filename

Retourneert het bestandsbestandsonderdeel van myname, met name empty() ? path() : *--end(). Het onderdeel is mogelijk leeg.

path filename() const;

path::generic_string

Retourneert this->string<Elem, Traits, Alloc>(al) met (onder Windows) een backslash die wordt geconverteerd naar een slash.

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

Retourneert u16string() met (onder Windows) een backslash die wordt geconverteerd naar een slash.

u16string generic_u16string() const;

path::generic_u32string

Deze functie wordt verwijderd in de historische MSVC-implementatie.

u32string generic_u32string() const = delete;

path::generic_u8string

Retourneert u8string() met (onder Windows) een backslash die wordt geconverteerd naar een slash.

string generic_u8string() const;

path::generic_wstring

Retourneert wstring() met (onder Windows) een backslash die wordt geconverteerd naar een slash.

wstring generic_wstring() const;

path::has_extension

Retourneert !extension().empty().

bool has_extension() const;

path::has_filename

Retourneert !filename().empty().

bool has_filename() const;

path::has_parent_path

Retourneert !parent_path().empty().

bool has_parent_path() const;

path::has_relative_path

Retourneert !relative_path().empty().

bool has_relative_path() const;

path::has_root_directory

Retourneert !root_directory().empty().

bool has_root_directory() const;

path::has_root_name

Retourneert !root_name().empty().

bool has_root_name() const;

path::has_root_path

Retourneert !root_path().empty().

bool has_root_path() const;

path::has_stem

Retourneert !stem().empty().

bool has_stem() const;

path::is_absolute

Voor Windows retourneert has_root_name() && has_root_directory()de functie . Voor POSIX retourneert has_root_directory()de functie .

bool is_absolute() const;

path::is_relative

Retourneert !is_absolute().

bool is_relative() const;

path::iterator

Een bidirectionele constante iterator die de padonderdelen van 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;
   // ...
   };

Opmerkingen

De klasse beschrijft een bidirectionele constante iterator die de path onderdelen in myname de reeks aanwijst:

  1. de hoofdnaam, indien aanwezig

  2. de hoofdmap, indien aanwezig

  3. de resterende mapelementen van het bovenliggende pathitem, indien aanwezig, eindigend met de bestandsnaam, indien aanwezig

Voor pval een object van het type path:

  1. path::iterator X = pval.begin() wijst het eerste path element in de padnaam aan, indien aanwezig.

  2. X == pval.end() is true wanneer X punten net voorbij het einde van de reeks onderdelen vallen.

  3. *X retourneert een tekenreeks die overeenkomt met het huidige onderdeel

  4. ++X wijst het volgende onderdeel in de reeks aan, indien aanwezig.

  5. --X wijst het voorgaande onderdeel in de volgorde aan, indien aanwezig.

  6. myname Als u wijzigingen wijzigt, worden alle iterators die elementen aanwijzen in myname.

path::make_preferred

Converteert elk scheidingsteken naar een preferred_separator indien nodig.

path& make_preferred();

path::native

Haal de systeemeigen tekenreeksweergave van het pad op.

const string_type& native() const noexcept;

Opmerkingen

Het pad is beschikbaar in een draagbare algemene indeling (zie generic_string()) of de systeemeigen indeling van het pad. Met deze functie wordt de systeemeigen tekenreeks geretourneerd. Op een POSIX-systeem zijn de algemene indeling en de systeemeigen indeling hetzelfde.

In het volgende voorbeeld dat wordt uitgevoerd op Windows, is c:/t/temp.txt de algemene padtekenreeks en de systeemeigen tekenreeks.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=

Vervangt de elementen van het pad door een kopie van een ander pad.

path& operator=(const path& right);
path& operator=(path&& right) noexcept;

template <class Source>
path& operator=(const Source& source);

Parameters

right
Het path wordt gekopieerd naar de path.

source
De bron path.

Opmerkingen

De eerste lidoperator kopieert right.myname naar myname. De tweede lidoperator wordt verplaatst right.myname naar myname. De operator van het derde lid gedraagt zich hetzelfde als *this = path(source).

path::operator+=

Verschillende concat expressies.

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
Het toegevoegde pad.

str
De toegevoegde tekenreeks.

ptr
De toegevoegde aanwijzer.

elem
De toegevoegde value_type of Elem.

source
De toegevoegde bron.

Opmerkingen

De lidfuncties gedragen zich hetzelfde als de volgende bijbehorende expressies:

  1. concat(right);

  2. concat(path(str));

  3. concat(ptr);

  4. concat(string_type(1, elem));

  5. concat(source);

  6. concat(path(basic_string<Elem>(1, elem)));

path::operator/=

Verschillende append expressies.

path& operator/=(const path& right);

template <class Source>
path& operator/=(const Source& source);

Parameters

right
Het toegevoegde pad.

source
De toegevoegde bron.

Opmerkingen

De lidfuncties gedragen zich hetzelfde als de volgende bijbehorende expressies:

  1. append(right);

  2. append(source);

path::operator string_type

Retourneert myname.

operator string_type() const;

path::parent_path

Retourneert het bovenliggende padonderdeel van myname.

path parent_path() const;

Opmerkingen

Retourneert het bovenliggende padonderdeel van myname, met name het voorvoegsel van myname na het verwijderen filename().native() en eventuele direct voorafgaande directoryscheidingstekens. (Als begin() != end()het ook gaat om de combinatie van alle elementen in het bereik [begin(), --end()) door achtereenvolgens toe te passen operator/=.) Het onderdeel is mogelijk leeg.

path::path

Bouwt een path op verschillende manieren.

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
Het pad waarvan het samengestelde pad een kopie moet zijn.

source
De bron waarvan het samengestelde pad een kopie moet zijn.

loc
De opgegeven landinstelling.

first
De positie van het eerste element dat moet worden gekopieerd.

last
De positie van het laatste element dat moet worden gekopieerd.

Opmerkingen

De constructors maken myname allemaal op verschillende manieren:

Want path() het is myname().

Voor path(const path& right) is myname(right.myname)het .

Want path(path&& right) het is myname(right.myname).

Want template<class Source> path(const Source& source) het is myname(source).

Voor template<class Source> path(const Source& source, const locale& loc) het is myname(source), het verkrijgen van alle benodigde codecvt facetten van loc.

Want template<class InIt> path(InIt first, InIt last) het is myname(first, last).

Voor template<class InIt> path(InIt first, InIt last, const locale& loc) het is myname(first, last), het verkrijgen van alle benodigde codecvt facetten van loc.

path::preferred_separator

Het constante object geeft het voorkeursteken voor het scheiden van padonderdelen, afhankelijk van het hostbesturingssysteem.

#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

Opmerkingen

Het is in de meeste contexten onder Windows evengoed toegestaan om in zijn plaats te gebruikenL'/'.

path::relative_path

Retourneert het relatieve padonderdeel van myname.

path relative_path() const;

Opmerkingen

Retourneert het relatieve padonderdeel van myname, met name het achtervoegsel van myname na het verwijderen root_path().native() en eventuele onmiddellijk volgende redundante adreslijstscheidingstekens. Het onderdeel is mogelijk leeg.

path::remove_filename

Hiermee verwijdert u de bestandsnaam.

path& remove_filename();

path::replace_extension

Vervangt de extensie van myname.

path& replace_extension(const path& newext = path());

Parameters

newext
De nieuwe extensie.

Opmerkingen

Verwijdert eerst het achtervoegsel extension().native() uit myname. !newext.empty() && newext[0] != dot Als (waar punt is*path(".").c_str()), dan wordt punt toegevoegd aan myname. Vervolgens newext wordt toegevoegd aan myname.

path::replace_filename

Vervangt de bestandsnaam.

path& replace_filename(const path& pval);

Parameters

pval
Het pad van de bestandsnaam.

Opmerkingen

De lidfunctie voert het volgende uit:

remove_filename();

*this /= pval;
return (*this);

path::root_directory

Retourneert het hoofdmaponderdeel van myname.

path root_directory() const;

Opmerkingen

Het onderdeel is mogelijk leeg.

path::root_name

Retourneert het hoofdnaamonderdeel van myname.

path root_name() const;

Opmerkingen

Het onderdeel is mogelijk leeg.

path::root_path

Retourneert het hoofdpadonderdeel van myname.

path root_path() const;

Opmerkingen

Retourneert het hoofdpadonderdeel vanmyname, met name / root_name()root_directory . Het onderdeel is mogelijk leeg.

path::stem

Retourneert het stem onderdeel van myname.

path stem() const;

Opmerkingen

Retourneert het stem onderdeel van myname, met name filename().native() bij alle gevolgde extension().native() onderdelen die zijn verwijderd. Het onderdeel is mogelijk leeg.

path::string

Converteert de reeks die is opgeslagen in 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;

Opmerkingen

Met de eerste lidfunctie (sjabloon) wordt de volgorde geconverteerd die op myname dezelfde manier is opgeslagen als:

  1. string() voor string<char, Traits, Alloc>()

  2. wstring() voor string<wchar_t, Traits, Alloc>()

  3. u16string() voor string<char16_t, Traits, Alloc>()

De tweede lidfunctie converteert de reeks die is opgeslagen in myname de codering die wordt aanbevolen door het hostsysteem voor een char reeks en retourneert deze die is opgeslagen in een object van het type string.

path::string_type

Het type is een synoniem voor basic_string<value_type>.

typedef basic_string<value_type> string_type;

path::swap

swap(myname, right.myname)Wordt uitgevoerd.

void swap(path& right) noexcept;

path::u16string

Converteert de reeks die is opgeslagen in myname UTF-16 en retourneert deze opgeslagen in een object van het type u16string.

u16string u16string() const;

path::u32string

Deze functie wordt verwijderd in de historische MSVC-implementatie.

u32string u32string() const = delete;

path::u8string

Converteert de reeks die is opgeslagen in myname UTF-8 en retourneert deze opgeslagen in een object van het type u8string.

string u8string() const;

path::value_type

Het type beschrijft de path elementen die door het hostbesturingssysteem worden aanbevolen.

#if _WIN32_C_LIB
typedef wchar_t value_type;
#else // assume POSIX
typedef char value_type;
#endif // filesystem model now defined

path::wstring

Converteert de reeks die is opgeslagen in myname de codering die wordt aanbevolen door het hostsysteem voor een wchar_t reeks en retourneert deze die is opgeslagen in een object van het type wstring.

wstring wstring() const;

Zie ook

<experimental/filesystem>
<experimental/filesystem> operators