Classe path
La path
classe archivia un oggetto di tipo string_type
, chiamato myname
qui ai fini dell'esposizione, adatto per l'uso come pathname. string_type
è un sinonimo di basic_string<value_type>
, dove value_type
è un sinonimo di wchar_t
in Windows o char
in POSIX.
Per altre informazioni ed esempi di codice, vedere Esplorazione del file system.
Sintassi
class path;
Costruttori
Costruttore | Descrizione |
---|---|
path |
Costruisce un oggetto path . |
Typedef
Nome tipo | Descrizione |
---|---|
const_iterator |
Sinonimo di iterator . |
iterator |
Iteratore costante bidirezionale che definisce i path componenti di myname . |
string_type |
Il tipo è sinonimo di basic_string<value_type> . |
Funzioni membro
Funzione membro | Descrizione |
---|---|
append |
Aggiunge la sequenza specificata a mypath , convertita e inserendo un preferred_separator in base alle esigenze. |
assign |
mypath Sostituisce con la sequenza specificata, convertita in base alle esigenze. |
begin |
Restituisce un path::iterator oggetto che designa il primo elemento path nel pathname, se presente. |
c_str |
Restituisce un puntatore al primo carattere in mypath . |
clear |
mypath.clear() Esegue . |
compare |
Restituisce i valori di confronto. |
concat |
Aggiunge la sequenza specificata a mypath , convertita (ma non inserendo un separatore) in base alle esigenze. |
empty |
Restituisce mypath.empty() . |
end |
Restituisce un iteratore di fine sequenza di tipo iterator . |
extension |
Restituisce il suffisso di filename() . |
filename |
Restituisce il componente della directory radice di myname , in empty() ? path() : *--end() particolare . Il componente può essere vuoto. |
generic_string |
Restituisce this->string<Elem, Traits, Alloc>(al) con (in Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_u16string |
Restituisce u16string() con (in Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_u32string |
Restituisce u32string() con (in Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_u8string |
Restituisce u8string() con (in Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_wstring |
Restituisce wstring() con (in Windows) qualsiasi barra rovesciata convertita in una barra. |
has_extension |
Restituisce !extension().empty() . |
has_filename |
Restituisce !filename().empty() . |
has_parent_path |
Restituisce !parent_path().empty() . |
has_relative_path |
Restituisce !relative_path().empty() . |
has_root_directory |
Restituisce !root_directory().empty() . |
has_root_name |
Restituisce !root_name().empty() . |
has_root_path |
Restituisce !root_path().empty() . |
has_stem |
Restituisce !stem().empty() . |
is_absolute |
Per Windows, la funzione restituisce has_root_name() && has_root_directory() . Per POSIX, la funzione restituisce has_root_directory() . |
is_relative |
Restituisce !is_absolute() . |
make_preferred |
Converte ogni separatore in un oggetto preferred_separator in base alle esigenze. |
native |
Restituisce la rappresentazione nativa del percorso. |
parent_path |
Restituisce il componente del percorso padre di myname . |
preferred_separator |
L'oggetto costante fornisce il carattere preferito per la separazione dei componenti path, a seconda del sistema operativo host. |
relative_path |
Restituisce il componente percorso relativo di myname . |
remove_filename |
Rimuove il nome file. |
replace_extension |
Sostituisce l'estensione di myname . |
replace_filename |
Sostituisce il nome file. |
root_directory |
Restituisce il componente della directory radice di myname . |
root_name |
Restituisce il componente del nome radice di myname . |
root_path |
Restituisce il componente del percorso radice di myname . |
stem |
Restituisce il stem componente di myname . |
string |
Converte la sequenza archiviata in mypath . |
swap |
swap(mypath, right.mypath) Esegue . |
u16string |
Converte la sequenza archiviata in mypath UTF-16 e la restituisce archiviata in un oggetto di tipo u16string . |
u32string |
Converte la sequenza archiviata in mypath UTF-32 e la restituisce archiviata in un oggetto di tipo u32string . |
u8string |
Converte la sequenza archiviata in mypath UTF-8 e la restituisce archiviata in un oggetto di tipo u8string . |
value_type |
Il tipo descrive gli elementi path preferiti dal sistema operativo host. |
wstring |
Converte la sequenza archiviata in mypath nella codifica preferita dal sistema host per una wchar_t sequenza e la restituisce archiviata in un oggetto di tipo wstring . |
Operatori
Operatore | Descrizione |
---|---|
operator= |
Sostituisce gli elementi del percorso con una copia di un altro percorso. |
operator+= |
Varie concat espressioni. |
operator/= |
Varie append espressioni. |
operator string_type |
Restituisce myname . |
Requisiti
Intestazione: <filesystem>
Spazio dei nomi: std::experimental::filesystem
path::append
Aggiunge la sequenza specificata a mypath
, convertita e inserendo un oggetto preferred_separator
in base alle esigenze.
template <class Source>
path& append(const Source& source);
template <class InIt>
path& append(InIt first, InIt last);
Parametri
source
Sequenza specificata.
first
Inizio della sequenza specificata.
last
Fine della sequenza specificata.
path::assign
mypath
Sostituisce con la sequenza specificata, convertita in base alle esigenze.
template <class Source>
path& assign(const Source& source);
template <class InIt>
path& assign(InIt first, InIt last);
Parametri
source
Sequenza specificata.
first
Inizio della sequenza specificata.
last
Fine della sequenza specificata.
path::begin
Restituisce un path::iterator
oggetto che designa il primo elemento path nel pathname, se presente.
iterator begin() const;
path::c_str
Restituisce un puntatore al primo carattere in mypath
.
const value_type& *c_str() const noexcept;
path::clear
mypath.clear()
Esegue .
void clear() noexcept;
path::compare
La prima funzione restituisce mypath.compare(pval.native())
. La seconda funzione restituisce mypath.compare(str)
. La terza funzione restituisce mypath.compare(ptr)
.
int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(const value_type *ptr) const;
Parametri
pval
Percorso da confrontare.
str
Stringa da confrontare.
ptr
Puntatore da confrontare.
path::concat
Aggiunge la sequenza specificata a mypath
, convertita (ma non inserendo un separatore) in base alle esigenze.
template <class Source>
path& concat(const Source& source);
template <class InIt>
path& concat(InIt first, InIt last);
Parametri
source
Sequenza specificata.
first
Inizio della sequenza specificata.
last
Fine della sequenza specificata.
path::const_iterator
Sinonimo di iterator
.
typedef iterator const_iterator;
path::empty
Restituisce mypath.empty()
.
bool empty() const noexcept;
path::end
Restituisce un iteratore di fine sequenza di tipo iterator
.
iterator end() const;
path::extension
Restituisce il suffisso di filename()
.
path extension() const;
Osservazioni:
Restituisce il suffisso di filename() X
in modo che:
Se X == path(".") || X == path("..")
o se X
non contiene punti, il suffisso è vuoto.
In caso contrario, il suffisso comincia con (e include) il punto all'estrema destra.
path::filename
Restituisce il componente della directory radice di myname
, in empty() path() : *--end()
particolare . Il componente può essere vuoto.
path filename() const;
path::generic_string
Restituisce this->string<Elem, Traits, Alloc>(al)
con (in Windows) qualsiasi barra rovesciata convertita in una barra.
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
Restituisce u16string()
con (in Windows) qualsiasi barra rovesciata convertita in una barra.
u16string generic_u16string() const;
path::generic_u32string
Restituisce u32string()
con (in Windows) qualsiasi barra rovesciata convertita in una barra.
u32string generic_u32string() const;
path::generic_u8string
Restituisce u8string()
con (in Windows) qualsiasi barra rovesciata convertita in una barra.
string generic_u8string() const;
path::generic_wstring
Restituisce wstring()
con (in Windows) qualsiasi barra rovesciata convertita in una barra.
wstring generic_wstring() const;
path::has_extension
Restituisce !extension().empty()
.
bool has_extension() const;
path::has_filename
Restituisce !filename().empty()
.
bool has_filename() const;
path::has_parent_path
Restituisce !parent_path().empty()
.
bool has_parent_path() const;
path::has_relative_path
Restituisce !relative_path().empty()
.
bool has_relative_path() const;
path::has_root_directory
Restituisce !root_directory().empty()
.
bool has_root_directory() const;
path::has_root_name
Restituisce !root_name().empty()
.
bool has_root_name() const;
path::has_root_path
Restituisce !root_path().empty()
.
bool has_root_path() const;
path::has_stem
Restituisce !stem().empty()
.
bool has_stem() const;
path::is_absolute
Per Windows, la funzione restituisce has_root_name() && has_root_directory()
. Per POSIX, la funzione restituisce has_root_directory()
.
bool is_absolute() const;
path::is_relative
Restituisce !is_absolute()
.
bool is_relative() const;
path::iterator
Iteratore costante bidirezionale che definisce i componenti del percorso di 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;
// ...
};
Osservazioni:
La classe descrive un iteratore costante bidirezionale che definisce i path
componenti di myname
nella sequenza:
nome radice, se presente
directory radice, se presente
gli elementi di directory rimanenti dell'elemento padre
path
, se presente, terminando con il nome file, se presente
Per pval
un oggetto di tipo path
:
path::iterator X = pval.begin()
designa il primopath
elemento nel pathname, se presente.X == pval.end()
ètrue
quandoX
punta appena oltre la fine della sequenza di componenti.*X
restituisce una stringa che corrisponde al componente corrente++X
definisce il componente successivo nella sequenza, se presente.--X
definisce il componente precedente nella sequenza, se presente.La modifica
myname
invalida tutti gli iteratori che designano gli elementi inmyname
.
path::make_preferred
Converte ogni separatore in un oggetto preferred_separator
in base alle esigenze.
path& make_preferred();
path::native
Ottiene la rappresentazione di stringa nativa del percorso.
const string_type& native() const noexcept;
Osservazioni:
Il percorso è disponibile in un formato generico portabile (vedere generic_string()
) o nel formato nativo del percorso. Questa funzione restituisce la stringa nativa. In un sistema POSIX il formato generico e il formato nativo sono gli stessi.
Nell'esempio seguente in esecuzione in Windows 11 la stringa di percorso generica è c:/t/temp/temp.txt
e la stringa nativa è 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=
Sostituisce gli elementi del percorso con una copia di un altro percorso.
path& operator=(const path& right);
path& operator=(path&& right) noexcept;
template <class Source>
path& operator=(const Source& source);
Parametri
right
Oggetto path
copiato in path
.
source
Il path
di origine.
Osservazioni:
Il primo operatore membro copia right.myname
in myname
. Il secondo operatore membro passa right.myname
a myname
. Il terzo operatore membro si comporta come *this = path(source)
.
path::operator+=
Varie concat
espressioni.
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);
Parametri
right
Percorso aggiunto.
str
Stringa aggiunta.
ptr
Puntatore aggiunto.
elem
Oggetto aggiunto value_type
o Elem
.
source
Origine aggiunta.
Osservazioni:
Le funzioni membro si comportano allo stesso modo delle corrispondenti espressioni riportate di seguito:
concat(right);
concat(path(str));
concat(ptr);
concat(string_type(1, elem));
concat(source);
concat(path(basic_string<Elem>(1, elem)));
path::operator/=
Varie append
espressioni.
path& operator/=(const path& right);
template <class Source>
path& operator/=(const Source& source);
Parametri
right
Percorso aggiunto.
source
Origine aggiunta.
Osservazioni:
Le funzioni membro si comportano allo stesso modo delle corrispondenti espressioni riportate di seguito:
append(right);
append(source);
path::operator string_type
Restituisce myname
.
operator string_type() const;
path::parent_path
Restituisce il componente del percorso padre di myname
.
path parent_path() const;
Osservazioni:
Restituisce il componente percorso padre di myname
, in particolare il prefisso di myname
dopo la rimozione filename().native()
e gli eventuali separatori di directory immediatamente precedenti. (Allo stesso modo, se begin() != end()
, è la combinazione di tutti gli elementi nell'intervallo [begin(), --end())
applicando operator/=
successivamente .) Il componente può essere vuoto.
path::path
Costruisce un oggetto path
in vari modi.
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);
Parametri
right
Percorso del quale il percorso costruito deve essere una copia.
source
Origine di cui il percorso costruito deve essere una copia.
loc
Impostazioni locali specificate.
first
Posizione del primo elemento da copiare.
last
Posizione dell'ultimo elemento da copiare.
Osservazioni:
Tutti i costruttori sono costrutti myname
in vari modi:
Perché path()
è myname()
.
Per path(const path& right
) è myname(right.myname)
.
Perché path(path&& right)
è myname(right.myname)
.
Perché template<class Source> path(const Source& source)
è myname(source)
.
Per template<class Source> path(const Source& source, const locale& loc)
è myname(source)
, ottenendo tutti i facet necessari codecvt
da loc
.
Perché template<class InIt> path(InIt first, InIt last)
è myname(first, last)
.
Per template<class InIt> path(InIt first, InIt last, const locale& loc)
è myname(first, last)
, ottenendo tutti i facet necessari codecvt
da loc
.
path::preferred_separator
L'oggetto costante fornisce il carattere preferito per la separazione dei componenti path, a seconda del sistema operativo host.
#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
Osservazioni:
È altrettanto consentito nella maggior parte dei contesti in Windows usare L'/'
al suo posto.
path::relative_path
Restituisce il componente percorso relativo di myname
.
path relative_path() const;
Osservazioni:
Restituisce il componente relativo del percorso di myname
, in particolare il suffisso di myname
dopo la rimozione root_path().native()
e gli eventuali separatori di directory immediatamente ridondanti successivi. Il componente può essere vuoto.
path::remove_filename
Rimuove il nome file.
path& remove_filename();
path::replace_extension
Sostituisce l'estensione di myname
.
path& replace_extension(const path& newext = path());
Parametri
newext
Nuova estensione.
Osservazioni:
Rimuove prima di tutto il suffisso extension().native()
da myname
. Quindi, se (dove !newext.empty() && newext[0] != dot
punto è ), il punto viene aggiunto a myname
.*path(".").c_str()
Viene quindi newext
aggiunto a myname
.
path::replace_filename
Sostituisce il nome file.
path& replace_filename(const path& pval);
Parametri
pval
Percorso del nome file.
Osservazioni:
La funzione membro esegue:
remove_filename();
*this /= pval;
return (*this);
path::root_directory
Restituisce il componente della directory radice di myname
.
path root_directory() const;
Osservazioni:
Il componente può essere vuoto.
path::root_name
Restituisce il componente del nome radice di myname
.
path root_name() const;
Osservazioni:
Il componente può essere vuoto.
path::root_path
Restituisce il componente del percorso radice di myname
.
path root_path() const;
Osservazioni:
Restituisce il componente del percorso radice di myname
, in particolare / root_name()
root_directory
. Il componente può essere vuoto.
path::stem
Restituisce il stem
componente di myname
.
path stem() const;
Osservazioni:
Restituisce il stem
componente di myname
, in particolare filename().native()
con qualsiasi elemento finale extension().native()
rimosso. Il componente può essere vuoto.
path::string
Converte la sequenza archiviata in mypath
.
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;
Osservazioni:
La prima funzione membro (modello) converte la sequenza archiviata nello mypath
stesso modo di:
string()
perstring<char, Traits, Alloc>()
wstring()
perstring<wchar_t, Traits, Alloc>()
u16string()
perstring<char16_t, Traits, Alloc>()
u32string()
perstring<char32_t, Traits, Alloc>()
La seconda funzione membro converte la sequenza archiviata nella mypath
codifica preferita dal sistema host per una char
sequenza e la restituisce archiviata in un oggetto di tipo string
.
path::string_type
Il tipo è sinonimo di basic_string<value_type>
.
typedef basic_string<value_type> string_type;
path::swap
swap(mypath, right.mypath)
Esegue .
void swap(path& right) noexcept;
path::u16string
Converte la sequenza archiviata in mypath
UTF-16 e la restituisce archiviata in un oggetto di tipo u16string
.
u16string u16string() const;
path::u32string
Converte la sequenza archiviata in mypath
UTF-32 e la restituisce archiviata in un oggetto di tipo u32string
.
u32string u32string() const;
path::u8string
Converte la sequenza archiviata in mypath
UTF-8 e la restituisce archiviata in un oggetto di tipo u8string
.
string u8string() const;
path::value_type
Il tipo descrive gli path
elementi favoriti dal sistema operativo host.
#if _WIN32_C_LIB
typedef wchar_t value_type;
#else // assume POSIX
typedef char value_type;
#endif // filesystem model now defined
path::wstring
Converte la sequenza archiviata in mypath
nella codifica preferita dal sistema host per una wchar_t
sequenza e la restituisce archiviata in un oggetto di tipo wstring
.
wstring wstring() const;