Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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:
de hoofdnaam, indien aanwezig
de hoofdmap, indien aanwezig
de resterende mapelementen van het bovenliggende
pathitem, indien aanwezig, eindigend met de bestandsnaam, indien aanwezig
Voor pval een object van het type path:
path::iterator X = pval.begin()wijst het eerstepathelement in de padnaam aan, indien aanwezig.X == pval.end()istruewanneerXpunten net voorbij het einde van de reeks onderdelen vallen.*Xretourneert een tekenreeks die overeenkomt met het huidige onderdeel++Xwijst het volgende onderdeel in de reeks aan, indien aanwezig.--Xwijst het voorgaande onderdeel in de volgorde aan, indien aanwezig.mynameAls u wijzigingen wijzigt, worden alle iterators die elementen aanwijzen inmyname.
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:
concat(right);concat(path(str));concat(ptr);concat(string_type(1, elem));concat(source);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:
append(right);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:
string()voorstring<char, Traits, Alloc>()wstring()voorstring<wchar_t, Traits, Alloc>()u16string()voorstring<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