Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Klassen path lagrar ett objekt av typen string_type, som anropas myname här för exposition, som är lämpligt för användning som sökvägsnamn.
string_typeär en synonym för basic_string<value_type>, där value_type är en synonym för wchar_t på Windows eller char på POSIX.
Klassen path som beskrivs här är klassen C++17 std::filesystem::path i <filesystem> rubriken.
Mer information och kodexempel finns i Filsystemnavigering (C++).
Syntax
class path;
Constructors
| Constructor | Beskrivning |
|---|---|
path |
Konstruerar en path. |
Typedefs
| Typnamn | Beskrivning |
|---|---|
const_iterator |
En synonym för iterator. |
iterator |
En dubbelriktad konstant iterator som anger komponenterna mynamei path . |
string_type |
Typen är en synonym för basic_string<value_type>. |
Enumerations
| Typnamn | Beskrivning |
|---|---|
format |
Anger pathname-format för konstruktorer: auto_format, native_formateller generic_format. |
Medlemsfunktioner
| Medlemsfunktion | Beskrivning |
|---|---|
append |
Lägger till den angivna sekvensen i myname, konverteras och infogar en preferred_separator efter behov. |
assign |
myname Ersätter med den angivna sekvensen, konverterad efter behov. |
begin |
Returnerar ett path::iterator som anger det första sökvägselementet i pathname, om det finns. |
c_str |
Returnerar en pekare till det första tecknet i myname. |
clear |
myname.clear()Kör . |
compare |
Returnerar jämförelsevärden. |
concat |
Lägger till den angivna sekvensen i myname, konverterad (men infogar inte en avgränsare) efter behov. |
empty |
Returnerar myname.empty(). |
end |
Returnerar en iterator i slutet av sekvensen av typen iterator. |
extension |
Returnerar suffixet filename()för . |
filename |
Returnerar filnamnskomponenten mynameför , specifikt empty() ? path() : *--end(). Komponenten kan vara tom. |
generic_string |
Returnerar this->string<Elem, Traits, Alloc>(al) med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck. |
generic_u16string |
Returnerar u16string() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck. |
generic_u32string |
Returnerar u32string() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck. |
generic_u8string |
Returnerar u8string() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck. |
generic_wstring |
Returnerar wstring() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck. |
has_extension |
Returnerar !extension().empty(). |
has_filename |
Returnerar !filename().empty(). |
has_parent_path |
Returnerar !parent_path().empty(). |
has_relative_path |
Returnerar !relative_path().empty(). |
has_root_directory |
Returnerar !root_directory().empty(). |
has_root_name |
Returnerar !root_name().empty(). |
has_root_path |
Returnerar !root_path().empty(). |
has_stem |
Returnerar !stem().empty(). |
is_absolute |
För Windows returnerar has_root_name() && has_root_directory()funktionen . För POSIX returnerar has_root_directory()funktionen . |
is_relative |
Returnerar !is_absolute(). |
lexically_normal |
Returnerar myname konverterat till normalt formulär. |
lexically_proximate |
Returnerar lexically_relative(base), eller *this om resultatet är tomt. |
lexically_relative |
Returnerar myname som gjorts i förhållande till en bassökväg med endast lexikal analys (sträng). |
make_preferred |
Konverterar varje avgränsare till en preferred_separator efter behov. |
native |
Returnerar den interna representationen av sökvägen. |
parent_path |
Returnerar komponenten mynameför den överordnade sökvägen i . |
preferred_separator |
Det konstanta objektet ger det föredragna tecknet för att avgränsa sökvägskomponenter, beroende på värdoperativsystemet. |
relative_path |
Returnerar komponenten mynamerelativ sökväg i . |
remove_filename |
Tar bort filnamnet. |
replace_extension |
Ersätter tillägget mynameför . |
replace_filename |
Ersätter filnamnet. |
root_directory |
Returnerar rotkatalogkomponenten mynamei . |
root_name |
Returnerar rotnamnskomponenten mynameför . |
root_path |
Returnerar rotsökvägskomponenten i myname. |
stem |
Returnerar komponenten mynamei stem . |
string |
Konverterar sekvensen som lagras i myname. |
swap |
swap(myname, right.myname)Kör . |
u16string |
Konverterar sekvensen som lagras i myname till UTF-16 och returnerar den lagrad i ett objekt av typen u16string. |
u32string |
Konverterar sekvensen som lagras i myname till UTF-32 och returnerar den lagrad i ett objekt av typen u32string. |
u8string |
Konverterar sekvensen som lagras i myname till UTF-8 och returnerar den lagrad i ett objekt av typen u8string. |
value_type |
Typen beskriver sökvägselementen som föredras av värdoperativsystemet. |
wstring |
Konverterar sekvensen som lagras i myname till den kodning som värdsystemet föredrar för en wchar_t sekvens och returnerar den lagrad i ett objekt av typen wstring. |
Operators
| Operator | Beskrivning |
|---|---|
operator= |
Ersätter elementen i sökvägen med en kopia av en annan sökväg. |
operator+= |
Olika concat uttryck. |
operator/= |
Olika append uttryck. |
operator string_type |
Returnerar myname. |
Requirements
rubrik:<filesystem>
Namnområde:std::filesystem
path::append
Lägger till den angivna sekvensen i myname, konverteras och infogar en preferred_separator efter behov.
template <class Source>
path& append(const Source& source);
template <class InIt>
path& append(InIt first, InIt last);
Parameters
source
Angiven sekvens.
first
Start av angiven sekvens.
last
Slutet av den angivna sekvensen.
path::assign
myname Ersätter med den angivna sekvensen, konverterad efter behov.
path& assign(string_type&& source);
template <class Source>
path& assign(const Source& source);
template <class InIt>
path& assign(InIt first, InIt last);
Parameters
source
Angiven sekvens.
first
Start av angiven sekvens.
last
Slutet av den angivna sekvensen.
path::begin
Returnerar ett path::iterator som anger det första sökvägselementet i pathname, om det finns.
iterator begin() const;
path::c_str
Returnerar en pekare till det första tecknet i myname.
const value_type* c_str() const noexcept;
path::clear
myname.clear()Kör .
void clear() noexcept;
path::compare
Den första funktionen jämför elementen i den här sökvägen med pval. De andra funktionerna konstruerar en sökväg från argumentet och returnerar resultatet av att jämföra den med den här sökvägen.
int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(basic_string_view<value_type> str) const;
int compare(const value_type *ptr) const;
Parameters
pval
Sökväg att jämföra.
str
Sträng att jämföra.
ptr
Pekare att jämföra.
path::concat
Lägger till den angivna sekvensen i myname, konverterad (men infogar inte en avgränsare) efter behov.
template <class Source>
path& concat(const Source& source);
template <class InIt>
path& concat(InIt first, InIt last);
Parameters
source
Angiven sekvens.
first
Start av angiven sekvens.
last
Slutet av den angivna sekvensen.
path::const_iterator
En synonym för iterator.
typedef iterator const_iterator;
path::empty
Returnerar myname.empty().
bool empty() const noexcept;
path::end
Returnerar en iterator i slutet av sekvensen av typen iterator.
iterator end() const;
path::extension
Returnerar suffixet filename()för .
path extension() const;
Kommentarer
Returnerar suffixet filename() X för så här:
Om X == path(".") || X == path("..") eller om X det inte innehåller någon punkt är suffixet tomt.
Annars börjar suffixet med (och innehåller) den högra punkten.
path::filename
Returnerar filnamnskomponenten mynameför , specifikt empty() ? path() : *--end(). Komponenten kan vara tom.
path filename() const;
path::format
Anger det pathname-format som används för att tolka teckensekvensen som skickas till en path konstruktor.
enum format {
auto_format,
native_format,
generic_format
};
Members
| Uppräknare | Beskrivning |
|---|---|
auto_format |
Implementeringen identifierar formatet automatiskt. Det här är standardvärdet för konstruktorerna som använder ett format argument. |
native_format |
Tolka sekvensen i det interna pathname-formatet. |
generic_format |
Tolka sekvensen i det generiska pathname-formatet. |
Kommentarer
Eftersom det inbyggda formatet och det generiska formatet är utbytbara på Windows behandlar Microsoft-implementeringen alla tre uppräknaren på samma sätt. Parametern format tillhandahålls för standardefterlevnad och portabilitet. Mer information finns i specifikationen WG21 N4659 [fs.class.path].
path::generic_string
Returnerar this->string<Elem, Traits, Alloc>(al) med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck.
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
Returnerar u16string() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck.
u16string generic_u16string() const;
path::generic_u32string
Returnerar u32string() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck.
u32string generic_u32string() const;
path::generic_u8string
Returnerar u8string() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck.
string generic_u8string() const;
path::generic_wstring
Returnerar wstring() med (under Windows) eventuella omvänt snedstreck konverterade till ett snedstreck.
wstring generic_wstring() const;
path::has_extension
Returnerar !extension().empty().
bool has_extension() const;
path::has_filename
Returnerar !filename().empty().
bool has_filename() const;
path::has_parent_path
Returnerar !parent_path().empty().
bool has_parent_path() const;
path::has_relative_path
Returnerar !relative_path().empty().
bool has_relative_path() const;
path::has_root_directory
Returnerar !root_directory().empty().
bool has_root_directory() const;
path::has_root_name
Returnerar !root_name().empty().
bool has_root_name() const;
path::has_root_path
Returnerar !root_path().empty().
bool has_root_path() const;
path::has_stem
Returnerar !stem().empty().
bool has_stem() const;
path::is_absolute
För Windows returnerar has_root_name() && has_root_directory()funktionen . För POSIX returnerar has_root_directory()funktionen .
bool is_absolute() const;
path::is_relative
Returnerar !is_absolute().
bool is_relative() const;
path::iterator
En dubbelriktad konstant iterator som anger sökvägskomponenterna mynamei .
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;
// ...
};
Kommentarer
Klassen beskriver en dubbelriktad konstant iterator som anger komponenterna pathmyname i i sekvensen:
rotnamnet, om det finns
rotkatalogen, om den finns
återstående katalogelement i det överordnade
path, om det finns, som slutar med filnamnet, om det finns
För pval ett objekt av typen path:
path::iterator X = pval.begin()anger det förstapathelementet i pathname, om det finns.X == pval.end()ärtruenärXpekar precis förbi slutet av sekvensen av komponenter.*Xreturnerar en sträng som matchar den aktuella komponenten++Xanger nästa komponent i sekvensen, om den finns.--Xanger den föregående komponenten i sekvensen, om den finns.Om du ändrar
mynameogiltigförklaras alla iteratorer som anger element imyname.
path::lexically_normal
Returnerar myname konverterat till normalt formulär. Konverteringen är rent lexikal: filsystemet används inte.
path lexically_normal() const;
Kommentarer
Normaliseringen döljer redundanta element som . och .. och katalogavgränsare. Till exempel path("a/./b/../c").lexically_normal() ger avkastning a\c på Windows. En tom sökväg normaliseras till en tom sökväg. en sökväg som reducerar till ingenting normaliserar till .. Den fullständiga normaliseringsalgoritmen finns i specifikationen WG21 N4659 [fs.path.generic].
path::lexically_proximate
Returnerar resultatet av lexically_relative(base). Om resultatet är en tom sökväg returnerar du en kopia av *this i stället.
path lexically_proximate(const path& base) const;
Parameters
base
Basvägen att göra *this proximate till.
path::lexically_relative
Returnerar myname som gjorts i förhållande till base, endast med hjälp av lexikal analys (sträng). Filsystemet används inte.
path lexically_relative(const path& base) const;
Parameters
base
Den bassökväg som ska upprättas *this i förhållande till.
Kommentarer
Om root_name() != base.root_name(), eller om den ena sökvägen är absolut och den andra är relativ, eller om sökvägen har ett filnamn men ingen rotkatalog medan basen inte gör det, returnerar en tom sökväg. I annat fall avgör den relativa sökvägen från base till genom att *this hitta det första felmatchade elementet och generera .. för varje återstående element i base, följt av de återstående elementen *thisi . Till exempel path("/a/d").lexically_relative("/a/b/c") ger ..\..\d. Den fullständiga algoritmen finns i specifikationen WG21 N4659 [fs.path.gen].
path::make_preferred
Konverterar varje avgränsare till en preferred_separator efter behov.
path& make_preferred();
path::native
Hämta den interna strängrepresentationen av sökvägen.
const string_type& native() const noexcept;
Kommentarer
Sökvägen är tillgänglig i ett portabelt generiskt format (se generic_string()) eller sökvägens interna format. Den här funktionen returnerar den inbyggda strängen. I ett POSIX-system är det allmänna formatet och det interna formatet samma.
I följande exempel som körs på Windows är c:/t/temp.txt den allmänna sökvägssträngen och den inbyggda strängen .c:\t\temp.txt
// Compile with /std:c++17 or higher
#include <filesystem>
int main()
{
std::filesystem::path p(R"(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=
Ersätter elementen i sökvägen med en kopia av en annan sökväg.
path& operator=(const path& right);
path& operator=(path&& right) noexcept;
path& operator=(string_type&& source);
template <class Source>
path& operator=(const Source& source);
Parameters
right
Som path kopieras till path.
source
Källan path.
Kommentarer
Den första medlemsoperatorn kopieras right.myname till myname. Den andra medlemsoperatorn flyttas right.myname till myname. Den tredje medlemsoperatorn flyttas source till myname. Den fjärde medlemsoperatorn beter sig på samma sätt som *this = path(source).
path::operator+=
Olika concat uttryck.
path& operator+=(const path& right);
path& operator+=(const string_type& str);
path& operator+=(basic_string_view<value_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
Den tillagda sökvägen.
str
Den tillagda strängen.
ptr
Den tillagda pekaren.
elem
Den tillagda value_type eller Elem.
source
Den tillagda källan.
Kommentarer
Medlemsfunktionerna beter sig på samma sätt som anropet concat med argumentet. Överlagringarna path, string_type, basic_string_viewoch null-avslutade value_type* sammanlänkar argumentets teckensekvens. Överlagringarna value_type och Elem sammanfogar ett enda tecken. Den mallade Source överlagringen sammanfogar den konverterade källsekvensen.
path::operator/=
Olika append uttryck.
path& operator/=(const path& right);
template <class Source>
path& operator/=(const Source& source);
Parameters
right
Den tillagda sökvägen.
source
Den tillagda källan.
Kommentarer
Medlemsfunktionerna fungerar på samma sätt som följande motsvarande uttryck:
append(right);append(source);
path::operator string_type
Returnerar myname.
operator string_type() const;
path::parent_path
Returnerar komponenten mynameför den överordnade sökvägen i .
path parent_path() const;
Kommentarer
Returnerar den överordnade sökvägskomponenten mynameför , specifikt prefixet myname för efter borttagning filename().native() och eventuella direkt föregående katalogavgränsare. (På samma sätt, om begin() != end(), är det kombinationen av alla element i intervallet [begin(), --end()) genom att successivt tillämpa operator/=.) Komponenten kan vara tom.
path::path
Konstruerar en path på olika sätt.
path() noexcept;
path(const path& right);
path(path&& right) noexcept;
path(string_type&& source, format fmt = auto_format);
template <class Source>
path(const Source& source, format fmt = auto_format);
template <class InIt>
path(InIt first, InIt last, format fmt = auto_format);
template <class Source>
path(const Source& source, const locale& loc, format fmt = auto_format);
template <class InIt>
path(InIt first, InIt last, const locale& loc, format fmt = auto_format);
Parameters
right
Sökvägen till vilken den konstruerade sökvägen ska vara en kopia.
source
Källan som den konstruerade sökvägen ska vara en kopia av.
fmt
Det sökvägsnamn format som används för att tolka source eller intervallet first/last . Standardinställningen är auto_format.
loc
Det angivna språket.
first
Positionen för det första element som ska kopieras.
last
Positionen för det sista element som ska kopieras.
Kommentarer
Konstruktorerna konstruerar myname alla på olika sätt:
För path() det är myname().
För path(const path& right) det är myname(right.myname).
För path(path&& right) det är myname(right.myname).
För path(string_type&& source, format fmt) det är myname(move(source)).
För template<class Source> path(const Source& source, format fmt) det är myname(source).
För template<class Source> path(const Source& source, const locale& loc, format fmt) det är myname(source)hämtar du alla nödvändiga codecvt fasetter från loc.
För template<class InIt> path(InIt first, InIt last, format fmt) det är myname(first, last).
För template<class InIt> path(InIt first, InIt last, const locale& loc, format fmt) det är myname(first, last)hämtar du alla nödvändiga codecvt fasetter från loc.
Parametern fmt väljer pathname-formatet. På Windows är de inbyggda och generiska formaten utbytbara, så Microsoft implementeringen ignorerar fmt.
path::preferred_separator
Det konstanta objektet ger det föredragna tecknet för att avgränsa sökvägskomponenter, beroende på värdoperativsystemet.
#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
Kommentarer
Det är lika tillåtet i de flesta sammanhang under Windows att använda L'/' i dess ställe.
path::relative_path
Returnerar komponenten mynamerelativ sökväg i .
path relative_path() const;
Kommentarer
Returnerar den relativa sökvägskomponenten mynamei , specifikt suffixet myname för efter borttagning root_path().native() och eventuella omedelbart efterföljande redundanta katalogavgränsare. Komponenten kan vara tom.
path::remove_filename
Tar bort filnamnet.
path& remove_filename();
path::replace_extension
Ersätter tillägget mynameför .
path& replace_extension(const path& newext = path());
Parameters
newext
Det nya tillägget.
Kommentarer
Tar först bort suffixet extension().native() från myname.
!newext.empty() && newext[0] != dot Om (där punkt är *path(".").c_str()) läggs sedan punkt till i myname. Läggs sedan newext till mynamei .
path::replace_filename
Ersätter filnamnet.
path& replace_filename(const path& pval);
Parameters
pval
Sökvägen till filnamnet.
Kommentarer
Medlemsfunktionen kör:
remove_filename();
*this /= pval;
return (*this);
path::root_directory
Returnerar rotkatalogkomponenten mynamei .
path root_directory() const;
Kommentarer
Komponenten kan vara tom.
path::root_name
Returnerar rotnamnskomponenten mynameför .
path root_name() const;
Kommentarer
Komponenten kan vara tom.
path::root_path
Returnerar rotsökvägskomponenten i myname.
path root_path() const;
Kommentarer
Returnerar rotsökvägskomponenten mynameför , specifikt / root_name()root_directory . Komponenten kan vara tom.
path::stem
Returnerar komponenten mynamei stem .
path stem() const;
Kommentarer
Returnerar komponenten mynamei stem , specifikt filename().native() med eventuella avslutande borttagnaextension().native(). Komponenten kan vara tom.
path::string
Konverterar sekvensen som lagras i 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;
Kommentarer
Den första medlemsfunktionen (mall) konverterar sekvensen som lagras på myname samma sätt som:
string()förstring<char, Traits, Alloc>()wstring()förstring<wchar_t, Traits, Alloc>()u16string()förstring<char16_t, Traits, Alloc>()u32string()förstring<char32_t, Traits, Alloc>()
Den andra medlemsfunktionen konverterar sekvensen som lagras i myname till den kodning som värdsystemet föredrar för en char sekvens och returnerar den lagrad i ett objekt av typen string.
path::string_type
Typen är en synonym för basic_string<value_type>.
typedef basic_string<value_type> string_type;
path::swap
swap(myname, right.myname)Kör .
void swap(path& right) noexcept;
path::u16string
Konverterar sekvensen som lagras i myname till UTF-16 och returnerar den lagrad i ett objekt av typen u16string.
u16string u16string() const;
path::u32string
Konverterar sekvensen som lagras i myname till UTF-32 och returnerar den lagrad i ett objekt av typen u32string.
u32string u32string() const;
path::u8string
Konverterar sekvensen som lagras i myname till UTF-8 och returnerar den lagrad i ett objekt av typen u8string.
string u8string() const;
path::value_type
Typen beskriver de path element som gynnas av värdoperativsystemet.
#if _WIN32_C_LIB
typedef wchar_t value_type;
#else // assume POSIX
typedef char value_type;
#endif // filesystem model now defined
path::wstring
Konverterar sekvensen som lagras i myname till den kodning som värdsystemet föredrar för en wchar_t sekvens och returnerar den lagrad i ett objekt av typen wstring.
wstring wstring() const;
Se även
<filesystem>
referens för huvudfiler