Aracılığıyla paylaş


path Sınıf

sınıfıpath, yol adı olarak kullanıma uygun olan, edat amacıyla burada çağrılan myname türünde string_typebir nesnesi depolar. string_type, için bir eş anlamlıdırbasic_string<value_type>; burada value_type Windows'da veya char POSIX'te için wchar_t bir eş anlamlıdır.

Daha fazla bilgi ve kod örnekleri için bkz . Dosya Sistemi Gezintisi (C++).

Sözdizimi

class path;

Oluşturucular

Oluşturucu Açıklama
path bir patholuşturur.

Tür tanımları

Tür adı Açıklama
const_iterator için iteratorbir eş anlamlı.
iterator bileşenlerini belirten path çift yönlü sabit yineleyici.myname
string_type türü, için basic_string<value_type>bir eş anlamlıdır.

Üye işlevleri

Üye işlevi Açıklama
append Belirtilen sırayı mypathöğesine ekler, gerektiğinde bir preferred_separator dönüştürür ve ekler.
assign mypath yerine belirtilen sırayı alır ve gerektiğinde dönüştürülür.
begin path::iterator Varsa, pathname içindeki ilk yol öğesinin atanma değerini döndürür.
c_str içindeki mypathilk karaktere bir işaretçi döndürür.
clear yürütür mypath.clear().
compare Karşılaştırma değerlerini döndürür.
concat Belirtilen sırayı mypathöğesine ekler, gerektiğinde dönüştürülür (ancak ayırıcı eklenmez).
empty mypath.empty() döndürür.
end türünde iteratorbir sıra sonu yineleyicisi döndürür.
extension öğesinin son ekini filename()döndürür.
filename öğesinin kök dizin bileşenini myname, özellikle empty() ? path() : *--end()döndürür. Bileşen boş olabilir.
generic_string Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür this->string<Elem, Traits, Alloc>(al) .
generic_u16string Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür u16string() .
generic_u32string Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür u32string() .
generic_u8string Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür u8string() .
generic_wstring Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür wstring() .
has_extension !extension().empty() döndürür.
has_filename !filename().empty() döndürür.
has_parent_path !parent_path().empty() döndürür.
has_relative_path !relative_path().empty() döndürür.
has_root_directory !root_directory().empty() döndürür.
has_root_name !root_name().empty() döndürür.
has_root_path !root_path().empty() döndürür.
has_stem !stem().empty() döndürür.
is_absolute Windows için işlevi döndürür has_root_name() && has_root_directory(). POSIX için işlevi döndürür has_root_directory().
is_relative !is_absolute() döndürür.
make_preferred Her ayırıcıyı gerektiği gibi öğesine preferred_separator dönüştürür.
native Yolun yerel gösterimini döndürür.
parent_path öğesinin üst yol bileşenini mynamedöndürür.
preferred_separator Sabit nesne, konak işletim sistemine bağlı olarak yol bileşenlerini ayırmak için tercih edilen karakteri verir.
relative_path göreli yol bileşenini mynamedöndürür.
remove_filename Dosya adını kaldırır.
replace_extension uzantısının mynameyerini alır.
replace_filename Dosya adını değiştirir.
root_directory kök dizin bileşenini mynamedöndürür.
root_name kök adı bileşenini mynamedöndürür.
root_path kök yol bileşenini mynamedöndürür.
stem stem bileşenini mynamedöndürür.
string içinde mypathdepolanan diziyi dönüştürür.
swap yürütür swap(mypath, right.mypath).
u16string içinde mypath depolanan diziyi UTF-16'ya dönüştürür ve türünde u16stringbir nesnede depolanmış olarak döndürür.
u32string içinde mypath depolanan diziyi UTF-32'ye dönüştürür ve türünde u32stringbir nesnede depolanmış olarak döndürür.
u8string içinde mypath depolanan diziyi UTF-8'e dönüştürür ve türünde u8stringbir nesnede depolanmış olarak döndürür.
value_type türü, konak işletim sistemi tarafından tercih edilen yol öğelerini açıklar.
wstring içinde mypath depolanan diziyi, bir wchar_t dizi için konak sistemi tarafından tercih edilen kodlamaya dönüştürür ve türünde wstringbir nesnede depolanmış olarak döndürür.

İşleçler

Operator Açıklama
operator= Yolun öğelerini başka bir yolun kopyasıyla değiştirir.
operator+= Çeşitli concat ifadeler.
operator/= Çeşitli append ifadeler.
operator string_type myname döndürür.

Gereksinimler

Üstbilgi: <filesystem>

Ad alanı: std::experimental::filesystem

path::append

Belirtilen sırayı mypathöğesine ekler, gerektiği gibi dönüştürülür ve eklenir preferred_separator .

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

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

Parametreler

source
Belirtilen sıra.

first
Belirtilen sıranın başlangıcı.

last
Belirtilen sıranın sonu.

path::assign

mypath yerine belirtilen sırayı alır ve gerektiğinde dönüştürülür.

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

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

Parametreler

source
Belirtilen sıra.

first
Belirtilen sıranın başlangıcı.

last
Belirtilen sıranın sonu.

path::begin

path::iterator Varsa, pathname içindeki ilk yol öğesinin atanma değerini döndürür.

iterator begin() const;

path::c_str

içindeki mypathilk karaktere bir işaretçi döndürür.

const value_type& *c_str() const noexcept;

path::clear

yürütür mypath.clear().

void clear() noexcept;

path::compare

İlk işlev döndürür mypath.compare(pval.native()). İkinci işlev döndürür mypath.compare(str). Üçüncü işlev döndürür mypath.compare(ptr).

int compare(const path& pval) const noexcept;
int compare(const string_type& str) const;
int compare(const value_type *ptr) const;

Parametreler

pval
Karşılaştıracak yol.

str
Karşılaştıracak dize.

ptr
Karşılaştıracak işaretçi.

path::concat

Belirtilen sırayı mypathöğesine ekler, gerektiğinde dönüştürülür (ancak ayırıcı eklenmez).

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

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

Parametreler

source
Belirtilen sıra.

first
Belirtilen sıranın başlangıcı.

last
Belirtilen sıranın sonu.

path::const_iterator

için iteratorbir eş anlamlı.

typedef iterator const_iterator;

path::empty

mypath.empty() döndürür.

bool empty() const noexcept;

path::end

türünde iteratorbir sıra sonu yineleyicisi döndürür.

iterator end() const;

path::extension

öğesinin son ekini filename()döndürür.

path extension() const;

Açıklamalar

Aşağıdakilerin son ekini filename() X döndürür:

Nokta X == path(".") || X == path("..") yoksa veya yoksa X , sonek boş olur.

Aksi takdirde, soneki en sağdaki noktayla başlar (ve içerir).

path::filename

öğesinin kök dizin bileşenini myname, özellikle empty() path() : *--end()döndürür. Bileşen boş olabilir.

path filename() const;

path::generic_string

Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür this->string<Elem, Traits, Alloc>(al) .

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

Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür u16string() .

u16string generic_u16string() const;

path::generic_u32string

Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür u32string() .

u32string generic_u32string() const;

path::generic_u8string

Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür u8string() .

string generic_u8string() const;

path::generic_wstring

Ters eğik çizginin eğik çizgiye dönüştürülmesiyle (Windows altında) döndürür wstring() .

wstring generic_wstring() const;

path::has_extension

!extension().empty() döndürür.

bool has_extension() const;

path::has_filename

!filename().empty() döndürür.

bool has_filename() const;

path::has_parent_path

!parent_path().empty() döndürür.

bool has_parent_path() const;

path::has_relative_path

!relative_path().empty() döndürür.

bool has_relative_path() const;

path::has_root_directory

!root_directory().empty() döndürür.

bool has_root_directory() const;

path::has_root_name

!root_name().empty() döndürür.

bool has_root_name() const;

path::has_root_path

!root_path().empty() döndürür.

bool has_root_path() const;

path::has_stem

!stem().empty() döndürür.

bool has_stem() const;

path::is_absolute

Windows için işlevi döndürür has_root_name() && has_root_directory(). POSIX için işlevi döndürür has_root_directory().

bool is_absolute() const;

path::is_relative

!is_absolute() döndürür.

bool is_relative() const;

path::iterator

yolunun bileşenlerini belirten çift yönlü sabit yineleyici.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;
   // ...
   };

Açıklamalar

sınıfı, dizideki bileşenlerini myname belirten path çift yönlü bir sabit yineleyici açıklar:

  1. varsa kök adı

  2. varsa kök dizin

  3. varsa, dosya adıyla biten üst pathöğesinin kalan dizin öğeleri

türünde pathbir nesne içinpval:

  1. path::iterator X = pval.begin() varsa pathname içindeki ilk path öğeyi atar.

  2. X == pval.end() , true bileşenler dizisinin sonunun hemen sonundaki noktaların olmasıdır X .

  3. *X geçerli bileşenle eşleşen bir dize döndürür

  4. ++X varsa, dizideki bir sonraki bileşeni belirtir.

  5. --X varsa, dizideki önceki bileşeni belirtir.

  6. değiştirme, myname içindeki mynameöğeleri belirten tüm yineleyicileri geçersiz kılıyor.

path::make_preferred

Her ayırıcıyı gerektiği gibi öğesine preferred_separator dönüştürür.

path& make_preferred();

path::native

Yolun yerel dize gösterimini alın.

const string_type& native() const noexcept;

Açıklamalar

Yol taşınabilir genel biçimde (bkz generic_string(). ) veya yolun yerel biçiminde kullanılabilir. Bu işlev yerel dizeyi döndürür. POSIX sisteminde genel biçim ve yerel biçim aynıdır.

Windows 11'de çalışan aşağıdaki örnekte genel yol dizesi ve c:/t/temp/temp.txt yerel dize 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=

Yolun öğelerini başka bir yolun kopyasıyla değiştirir.

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

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

Parametreler

right
içine path kopyalanan path.

source
Kaynağı path.

Açıklamalar

İlk üye işleci öğesine mynamekopyalanırright.myname. İkinci üye işleci öğesine mynamegeçerright.myname. Üçüncü üye işleci ile aynı *this = path(source)şekilde davranır.

path::operator+=

Çeşitli concat ifadeler.

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);

Parametreler

right
Eklenen yol.

str
Eklenen dize.

ptr
Eklenen işaretçi.

elem
Eklenen value_type veya Elem.

source
Eklenen kaynak.

Açıklamalar

Üye işlevleri aşağıdaki karşılık gelen ifadelerle aynı şekilde davranır:

  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/=

Çeşitli append ifadeler.

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

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

Parametreler

right
Eklenen yol.

source
Eklenen kaynak.

Açıklamalar

Üye işlevleri aşağıdaki karşılık gelen ifadelerle aynı şekilde davranır:

  1. append(right);

  2. append(source);

path::operator string_type

myname döndürür.

operator string_type() const;

path::parent_path

öğesinin üst yol bileşenini mynamedöndürür.

path parent_path() const;

Açıklamalar

öğesinin üst yol bileşeninimyname, özellikle kaldırdıktan filename().native() sonra önekini myname ve hemen önceki dizin ayırıcılarını döndürür. (Eşit olarak, ise begin() != end(), aralıktaki [begin(), --end()) tüm öğelerin ardışık olarak uygulanarak operator/=birleştirilmesidir.) Bileşen boş olabilir.

path::path

Çeşitli yollarla oluşturur path .

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);

Parametreler

right
Oluşturulacak yolun kopya olacağı yol.

source
Oluşturulacak yolun bir kopya olması için kaynağı.

loc
Belirtilen yerel ayar.

first
Kopyalanacak ilk öğenin konumu.

last
Kopyalanacak son öğenin konumu.

Açıklamalar

Oluşturucuların tümü çeşitli şekillerde oluşturur myname :

Bunun myname()içinpath().

için path(const path& right) şeklindedir myname(right.myname).

Bunun myname(right.myname)içinpath(path&& right).

Bunun myname(source)içintemplate<class Source> path(const Source& source).

bunun myname(source)içintemplate<class Source> path(const Source& source, const locale& loc), 'den locgerekli codecvt modelleri elde etme.

Bunun myname(first, last)içintemplate<class InIt> path(InIt first, InIt last).

bunun myname(first, last)içintemplate<class InIt> path(InIt first, InIt last, const locale& loc), 'den locgerekli codecvt modelleri elde etme.

path::preferred_separator

Sabit nesne, konak işletim sistemine bağlı olarak yol bileşenlerini ayırmak için tercih edilen karakteri verir.

#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

Açıklamalar

Windows'un altında çoğu bağlamda aynı şekilde kullanılmasına L'/' izin verilebilir.

path::relative_path

göreli yol bileşenini mynamedöndürür.

path relative_path() const;

Açıklamalar

öğesinin mynamegöreli yol bileşenini, özellikle kaldırdıktan root_path().native() sonra son ekini myname ve hemen izleyen yedekli dizin ayırıcılarını döndürür. Bileşen boş olabilir.

path::remove_filename

Dosya adını kaldırır.

path& remove_filename();

path::replace_extension

uzantısının mynameyerini alır.

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

Parametreler

newext
Yeni uzantı.

Açıklamalar

İlk olarak son eki extension().native() 'den mynamekaldırır. Ardından (!newext.empty() && newext[0] != dotnoktanın olduğu *path(".").c_str()yerde) ise, nokta sonuna mynameeklenir. Ardından newext öğesine mynameeklenir.

path::replace_filename

Dosya adını değiştirir.

path& replace_filename(const path& pval);

Parametreler

pval
Dosya adının yolu.

Açıklamalar

Üye işlevi şu işlemleri yürütür:

remove_filename();

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

path::root_directory

kök dizin bileşenini mynamedöndürür.

path root_directory() const;

Açıklamalar

Bileşen boş olabilir.

path::root_name

kök adı bileşenini mynamedöndürür.

path root_name() const;

Açıklamalar

Bileşen boş olabilir.

path::root_path

kök yol bileşenini mynamedöndürür.

path root_path() const;

Açıklamalar

,'nin mynamekök yol bileşenini, özellikle root_name() / root_directorydöndürür. Bileşen boş olabilir.

path::stem

stem bileşenini mynamedöndürür.

path stem() const;

Açıklamalar

öğesinin stem mynamebileşenini, özellikle filename().native() sondakiler extension().native() kaldırılmış olarak döndürür. Bileşen boş olabilir.

path::string

içinde mypathdepolanan diziyi dönüştürür.

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;

Açıklamalar

İlk (şablon) üye işlevi, depolanmış mypath diziyi aşağıdakilerle aynı şekilde dönüştürür:

  1. string<char, Traits, Alloc>() için string()

  2. string<wchar_t, Traits, Alloc>() için wstring()

  3. string<char16_t, Traits, Alloc>() için u16string()

  4. string<char32_t, Traits, Alloc>() için u32string()

İkinci üye işlevi, içinde mypath depolanan diziyi bir char dizi için konak sistemi tarafından tercih edilen kodlamaya dönüştürür ve türünde stringbir nesnede depolanmış olarak döndürür.

path::string_type

türü, için basic_string<value_type>bir eş anlamlıdır.

typedef basic_string<value_type> string_type;

path::swap

yürütür swap(mypath, right.mypath).

void swap(path& right) noexcept;

path::u16string

içinde mypath depolanan diziyi UTF-16'ya dönüştürür ve türünde u16stringbir nesnede depolanmış olarak döndürür.

u16string u16string() const;

path::u32string

içinde mypath depolanan diziyi UTF-32'ye dönüştürür ve türünde u32stringbir nesnede depolanmış olarak döndürür.

u32string u32string() const;

path::u8string

içinde mypath depolanan diziyi UTF-8'e dönüştürür ve türünde u8stringbir nesnede depolanmış olarak döndürür.

string u8string() const;

path::value_type

türü, konak işletim sistemi tarafından tercih edilen öğeleri açıklar path .

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

path::wstring

içinde mypath depolanan diziyi, bir wchar_t dizi için konak sistemi tarafından tercih edilen kodlamaya dönüştürür ve türünde wstringbir nesnede depolanmış olarak döndürür.

wstring wstring() const;

Ayrıca bkz.

Üst Bilgi Dosyaları Başvurusu