Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Questa pagina illustra l'implementazione di prendard std::experimental::filesystem::path Microsoft rimossa fornita dall'intestazione<experimental/filesystem>.
Non è la classe C++17std::filesystem::path. Questa implementazione prendard è basata sulla specifica tecnica del file system (N4100) e precede C++17 std::filesystem. L'intestazione <experimental/filesystem> e lo std::experimental::filesystem spazio dei nomi vengono rimossi a partire dal set di strumenti di Visual C++ Microsoft 14.51. Per l'implementazione corrente di C++17 supportata, vedere path la classe .
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.
Sintassi
class path;
Constructors
| Costruttore | Descrzione |
|---|---|
path |
Costruisce un oggetto path. |
Typedef
| Nome del tipo | Descrzione |
|---|---|
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 | Descrzione |
|---|---|
append |
Aggiunge la sequenza specificata a myname, convertita e inserendo un preferred_separator in base alle esigenze. |
assign |
myname 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 myname. |
clear |
myname.clear()Esegue . |
compare |
Restituisce i valori di confronto. |
concat |
Aggiunge la sequenza specificata a myname, convertita (ma non inserendo un separatore) in base alle esigenze. |
empty |
Restituisce myname.empty(). |
end |
Restituisce un iteratore di fine sequenza di tipo iterator. |
extension |
Restituisce il suffisso di filename(). |
filename |
Restituisce il componente filename di myname, in empty() ? path() : *--end()particolare . Il componente può essere vuoto. |
generic_string |
Restituisce this->string<Elem, Traits, Alloc>(al) con (sotto Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_u16string |
Restituisce u16string() con (sotto Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_u32string |
Eliminato nell'implementazione di MSVC cronologica. |
generic_u8string |
Restituisce u8string() con (sotto Windows) qualsiasi barra rovesciata convertita in una barra. |
generic_wstring |
Restituisce wstring() con (sotto 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 separare i componenti del percorso, 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 myname. |
swap |
swap(myname, right.myname)Esegue . |
u16string |
Converte la sequenza archiviata in myname UTF-16 e la restituisce archiviata in un oggetto di tipo u16string. |
u32string |
Eliminato nell'implementazione di MSVC cronologica. |
u8string |
Converte la sequenza archiviata in myname UTF-8 e la restituisce archiviata in un oggetto di tipo u8string. |
value_type |
Il tipo descrive gli elementi di percorso preferiti dal sistema operativo host. |
wstring |
Converte la sequenza archiviata in myname nella codifica preferita dal sistema host per una wchar_t sequenza e la restituisce archiviata in un oggetto di tipo wstring. |
Operators
| Operatore | Descrzione |
|---|---|
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. |
Requirements
Intestazione:<experimental/filesystem>
Spazio dei nomi:std::experimental::filesystem
path::append
Aggiunge la sequenza specificata a myname, 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
myname 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 myname.
const value_type* c_str() const noexcept;
path::clear
myname.clear()Esegue .
void clear() noexcept;
path::compare
La prima funzione restituisce myname.compare(pval.native()). La seconda funzione restituisce myname.compare(str). La terza funzione restituisce myname.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 myname, 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 myname.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 inizia con (e include) il punto più a destra.
path::filename
Restituisce il componente filename 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 (sotto 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 (sotto Windows) qualsiasi barra rovesciata convertita in una barra.
u16string generic_u16string() const;
path::generic_u32string
Questa funzione viene eliminata nell'implementazione di MSVC cronologica.
u32string generic_u32string() const = delete;
path::generic_u8string
Restituisce u8string() con (sotto Windows) qualsiasi barra rovesciata convertita in una barra.
string generic_u8string() const;
path::generic_wstring
Restituisce wstring() con (sotto 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:
il nome radice, se presente
la 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 primopathelemento nel pathname, se presente.X == pval.end()ètruequandoXpunta appena oltre la fine della sequenza di componenti.*Xrestituisce una stringa che corrisponde al componente corrente++Xdesigna il componente successivo nella sequenza, se presente.--Xdesigna il componente precedente nella sequenza, se presente.La modifica
mynameinvalida 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 la stringa di percorso generica è c:/t/temp.txt e la stringa nativa è 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=
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
pathOrigine.
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 come le espressioni corrispondenti seguenti:
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 come le espressioni corrispondenti seguenti:
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) questo è 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) questo è myname(first, last), ottenendo tutti i facet necessari codecvt da loc.
path::preferred_separator
L'oggetto costante fornisce il carattere preferito per separare i componenti del percorso, 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
È ugualmente 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] != dotpunto è *path(".").c_str()), il punto viene aggiunto a myname. 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 viene eseguita:
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 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;
Osservazioni
La prima funzione membro (modello) converte la sequenza archiviata nello myname stesso modo di:
string()perstring<char, Traits, Alloc>()wstring()perstring<wchar_t, Traits, Alloc>()u16string()perstring<char16_t, Traits, Alloc>()
La seconda funzione membro converte la sequenza archiviata nella myname 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(myname, right.myname)Esegue .
void swap(path& right) noexcept;
path::u16string
Converte la sequenza archiviata in myname UTF-16 e la restituisce archiviata in un oggetto di tipo u16string.
u16string u16string() const;
path::u32string
Questa funzione viene eliminata nell'implementazione di MSVC cronologica.
u32string u32string() const = delete;
path::u8string
Converte la sequenza archiviata in myname 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 myname nella codifica preferita dal sistema host per una wchar_t sequenza e la restituisce archiviata in un oggetto di tipo wstring.
wstring wstring() const;
Vedere anche
<experimental/filesystem>
<experimental/filesystem> operatori