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_type
bir 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 path oluşturur. |
Tür tanımları
Tür adı | Açıklama |
---|---|
const_iterator |
için iterator bir 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 mypath ilk 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 iterator bir 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 myname dö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 myname döndürür. |
remove_filename |
Dosya adını kaldırır. |
replace_extension |
uzantısının myname yerini alır. |
replace_filename |
Dosya adını değiştirir. |
root_directory |
kök dizin bileşenini myname döndürür. |
root_name |
kök adı bileşenini myname döndürür. |
root_path |
kök yol bileşenini myname döndürür. |
stem |
stem bileşenini myname döndürür. |
string |
içinde mypath depolanan 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 u16string bir 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 u32string bir 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 u8string bir 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 wstring bir 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 mypath
ilk 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 iterator
bir eş anlamlı.
typedef iterator const_iterator;
path::empty
mypath.empty()
döndürür.
bool empty() const noexcept;
path::end
türünde iterator
bir 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:
varsa kök adı
varsa kök dizin
varsa, dosya adıyla biten üst
path
öğesinin kalan dizin öğeleri
türünde path
bir nesne içinpval
:
path::iterator X = pval.begin()
varsa pathname içindeki ilkpath
öğeyi atar.X == pval.end()
,true
bileşenler dizisinin sonunun hemen sonundaki noktaların olmasıdırX
.*X
geçerli bileşenle eşleşen bir dize döndürür++X
varsa, dizideki bir sonraki bileşeni belirtir.--X
varsa, dizideki önceki bileşeni belirtir.değiştirme,
myname
içindekimyname
öğ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 myname
kopyalanırright.myname
. İkinci üye işleci öğesine myname
geç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:
concat(right);
concat(path(str));
concat(ptr);
concat(string_type(1, elem));
concat(source);
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:
append(right);
append(source);
path::operator string_type
myname
döndürür.
operator string_type() const;
path::parent_path
öğesinin üst yol bileşenini myname
dö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 loc
gerekli 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 loc
gerekli 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 myname
döndürür.
path relative_path() const;
Açıklamalar
öğesinin myname
gö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 myname
yerini alır.
path& replace_extension(const path& newext = path());
Parametreler
newext
Yeni uzantı.
Açıklamalar
İlk olarak son eki extension().native()
'den myname
kaldırır. Ardından (!newext.empty() && newext[0] != dot
noktanın olduğu *path(".").c_str()
yerde) ise, nokta sonuna myname
eklenir. Ardından newext
öğesine myname
eklenir.
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 myname
döndürür.
path root_directory() const;
Açıklamalar
Bileşen boş olabilir.
path::root_name
kök adı bileşenini myname
döndürür.
path root_name() const;
Açıklamalar
Bileşen boş olabilir.
path::root_path
kök yol bileşenini myname
döndürür.
path root_path() const;
Açıklamalar
,'nin myname
kök yol bileşenini, özellikle root_name()
/ root_directory
döndürür. Bileşen boş olabilir.
path::stem
stem
bileşenini myname
döndürür.
path stem() const;
Açıklamalar
öğesinin stem
myname
bileşenini, özellikle filename().native()
sondakiler extension().native()
kaldırılmış olarak döndürür. Bileşen boş olabilir.
path::string
içinde mypath
depolanan 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:
string<char, Traits, Alloc>()
içinstring()
string<wchar_t, Traits, Alloc>()
içinwstring()
string<char16_t, Traits, Alloc>()
içinu16string()
string<char32_t, Traits, Alloc>()
içinu32string()
İ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 string
bir 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 u16string
bir 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 u32string
bir 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 u8string
bir 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 wstring
bir nesnede depolanmış olarak döndürür.
wstring wstring() const;
Ayrıca bkz.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin