<filesystem>
işlevleri
Üst bilgideki <filesystem>
bu ücretsiz işlevler yollarda, dosyalarda, symlink'lerde, dizinlerde ve birimlerde işlemleri değiştirir ve sorgular. Daha fazla bilgi ve kod örnekleri için bkz . Dosya Sistemi Gezintisi (C++).
absolute
path absolute(const path& pval, const path& base = current_path());
İşlev, yol adına karşılık gelen pval
mutlak yol adını base
döndürür:
İşlev döndürürse
pval.has_root_name() && pval.has_root_directory()
pval
.İşlev döndürürse
pval.has_root_name() && !pval.has_root_directory()
/pval.root_name()
/ /absolute(base).relative_path()
absolute(base).root_directory()
pval.relative_path()
.İşlev döndürürse
!pval.has_root_name() && pval.has_root_directory()
/absolute(base).root_name()
pval
.İşlev döndürürse
!pval.has_root_name() && !pval.has_root_directory()
/absolute(base)
pval
.
begin
const directory_iterator& begin(const directory_iterator& iter) noexcept;
const recursive_directory_iterator&
begin(const recursive_directory_iterator& iter) noexcept;
her iki işlev de döndürür iter
.
canonical
path canonical(const path& pval, const path& base = current_path());
path canonical(const path& pval, error_code& ec);
path canonical(const path& pval, const path& base, error_code& ec);
İşlevlerin tümü mutlak bir yol adı pabs = absolute(pval, base)
(veya pabs = absolute(pval)
temel parametresi olmayan aşırı yükleme için) oluşturur ve ardından aşağıdaki adım dizisinde kurallı bir biçime küçültür:
ile
is_symlink(X)
true
değiştirilenread_symlink(X)
her yol bileşeniX
.Her yol bileşeni
.
(nokta, önceki yol bileşenleri tarafından oluşturulan geçerli dizindir) kaldırılır.Her yol bileşeni
X
/..
çifti (nokta-nokta, önceki yol bileşenleri tarafından oluşturulan üst dizindir) kaldırılır.
İşlev daha sonra döndürür pabs
.
copy
void copy(const path& from, const path& to);
void copy(const path& from, const path& to, error_code& ec) noexcept;
void copy(const path& from, const path& to, copy_options opts);
void copy(const path& from, const path& to, copy_options opts, error_code& ec) noexcept;
İşlevlerin tümü, parametresiz opts
aşırı yüklemeler için olarak copy_options::none
alınan bir veya daha fazla dosyayı uygulamasındanopts
denetimine kopyalar veya bağlar. opts
aşağıdakilerden en fazla birini içermelidir:
skip_existing
,overwrite_existing
veyaupdate_existing
copy_symlinks
veyaskip_symlinks
directories_only
,create_symlinks
veyacreate_hard_links
İşlevler önce için ve içint
file_status değerlerini f
belirler:
ise
opts & (copy_options::create_symlinks | copy_options::skip_symlinks)
, arayaraksymlink_status
aksi takdirde,
status
Aksi takdirde bir hata bildirin.
ise !exists(f) || equivalent(f, t) || is_other(f) || is_other(t) || is_directory(f)&& is_regular_file(t)
bir hata bildirir (ve başka bir şey yapmaz).
Aksi takdirde, şu durumda is_symlink(f)
:
ise
options & copy_options::skip_symlinks
hiçbir şey yapma.Aksi takdirde, ise
!exists(t)&& options & copy_options::copy_symlinks
, sonracopy_symlink(from, to, opts)
.Aksi takdirde bir hata bildirin.
Aksi takdirde, ise is_regular_file(f)
:
ise
opts & copy_options::directories_only
hiçbir şey yapma.Aksi takdirde, ise
opts & copy_options::create_symlinks
, sonracreate_symlink(to, from)
.Aksi takdirde, ise
opts & copy_options::create_hard_links
, sonracreate_hard_link(to, from)
.Aksi takdirde, ise
is_directory(f)
, sonra /copy_file(from, to
from.filename(), opts)
.Tersi durumda
copy_file(from, to, opts)
.
Aksi takdirde, ise is_directory(f) && (opts & copy_options::recursive || !opts)
:
if (!exists(t))
{ // copy directory contents recursively
create_directory(to, from, ec);
for (directory_iterator next(from), end; ec == error_code() && next != end; ++next)
{
copy(next->path(), to / next->path().filename(), opts, ec);
}
}
Aksi takdirde, hiçbir şey yapma.
copy_file
bool copy_file(const path& from, const path& to);
bool copy_file(const path& from, const path& to, error_code& ec) noexcept;
bool copy_file(const path& from, const path& to, copy_options opts);
bool copy_file(const path& from, const path& to, copy_options opts, error_code& ec) noexcept;
İşlevlerin tümü, parametresiz aşırı yüklemeler için olarak copy_options::none
alınan dosyasındaki dosyasını konumundandenetimi opts
altına kopyalar.opts
opts
, veya update_existing
öğelerinden skip_existing
overwrite_existing
en fazla birini içermelidir.
ise exists(to) && !(opts & (copy_options::skip_existing | copy_options::overwrite_existing | copy_options::update_existing))
, dosyanın zaten var olduğunu bir hata olarak bildirin.
Aksi takdirde, ise !exists(to) || opts & copy_options::overwrite_existing || opts & copy_options::update_existing&& last_write_time(to) < last_write_time(from) || !(opts & (copy_options::skip_existing | copy_options::overwrite_existing | copy_options:update_existing))
dosyasının içeriğini ve özniteliklerini dosyasından dosyasına kopyalamayı dener. Kopyalama girişimi başarısız olursa hata olarak bildirin.
Kopyalama denenirse ve başarılı olursa, işlevleri döndürür true
, aksi takdirde false
.
copy_symlink
void copy_symlink(const path& from, const path& to);
void copy_symlink(const path& from, const path& to, error_code& ec) noexcept;
ise is_directory(from)
işlevi öğesini çağırır create_directory_symlink(from, to)
. Aksi takdirde öğesini çağırır create_symlink(from, to)
.
create_directories
bool create_directories(const path& pval);
bool create_directories(const path& pval, error_code& ec) noexcept;
gibi bir yol adı için a\/b\/c
, işlevi gerektiğinde dizini oluşturabilmesi için dizinleri a
ve a\/b
gerektiğinde oluşturur a\/b\/c
. Yalnızca dizinini pval
gerçekten oluşturduğunda döndürürtrue
.
create_directory
bool create_directory(const path& pval);
bool create_directory(const path& pval, error_code& ec) noexcept;
bool create_directory(const path& pval, const path& attr);
bool create_directory(const path& pval, const path& attr, error_code& ec) noexcept;
işlevi gerektiğinde dizini pval
oluşturur. Yalnızca dizinini gerçekten oluşturduğunda döndürürtrue
; bu durumda mevcut dosyadan attr
izinleri kopyalar veya parametresiz attr
aşırı yüklemeler için kullanırperms::all
.pval
create_directory_symlink
void create_directory_symlink(const path& to, const path& link);
void create_directory_symlink(const path& to, const path& link, error_code& ec) noexcept;
işlevi, dizinine bir symlink olarak bağlantı oluşturur.
create_hard_link
void create_hard_link(const path& to, const path& link);
void create_hard_link(const path& to, const path& link, error_code& ec) noexcept;
işlevi, dizinine veya dosyasına sabit bağlantı olarak bağlantı oluşturur.
create_symlink
void create_symlink(const path& to, const path& link);
void create_symlink(const path& to, const path& link, error_code& ec) noexcept;
işlevi, dosyasına bir symlink olarak oluştururlink
.
current_path
path current_path();
path current_path(error_code& ec);
void current_path(const path& pval);
void current_path(const path& pval, error_code& ec) noexcept;
Parametresiz pval
işlevler geçerli dizin için yol adını döndürür. Kalan işlevler geçerli dizini olarak pval
ayarlar.
end
directory_iterator& end(const directory_iterator& iter) noexcept;
recursive_directory_iterator& end(const recursive_directory_iterator& iter) noexcept;
İlk işlev, directory_iterator()
ikinci işlev döndürür recursive_directory_iterator()
equivalent
bool equivalent(const path& left, const path& right);
bool equivalent(const path& left, const path& right, error_code& ec) noexcept;
İşlevler yalnızca sol ve sağ aynı dosya sistemi varlığını seçerse dönertrue
.
exists
bool exists(file_status stat) noexcept;
bool exists(const path& pval);
bool exists(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür status_known && stat.type() != file_not_found
. İkinci ve üçüncü işlevler döndürür exists(status(pval))
.
file_size
uintmax_t file_size(const path& pval);
uintmax_t file_size(const path& pval, error_code& ec) noexcept;
İşlevler, tarafından seçilen pval
dosyanın bayt cinsinden boyutunu döndürür, eğer exists(pval) && is_regular_file(pval)
ve dosya boyutu belirlenebilir. Aksi takdirde bir hata bildirir ve döndürür uintmax_t(-1)
.
hard_link_count
uintmax_t hard_link_count(const path& pval);
uintmax_t hard_link_count(const path& pval, error_code& ec) noexcept;
İşlev, için sabit bağlantı pval
sayısını veya hata oluşursa -1 değerini döndürür.
hash_value
size_t hash_value(const path& pval) noexcept;
işlevi için pval.native()
bir karma değeri döndürür.
is_block_file
bool is_block_file(file_status stat) noexcept;
bool is_block_file(const path& pval);
bool is_block_file(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::block
. Kalan işlevler döndürür is_block_file(status(pval))
.
is_character_file
bool is_character_file(file_status stat) noexcept;
bool is_character_file(const path& pval);
bool is_character_file(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::character
. Kalan işlevler döndürür is_character_file(status(pval))
.
is_directory
bool is_directory(file_status stat) noexcept;
bool is_directory(const path& pval);
bool is_directory(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::directory
. Kalan işlevler döndürür is_directory_file(status(pval))
.
is_empty
bool is_empty(file_status stat) noexcept;
bool is_empty(const path& pval);
bool is_empty(const path& pval, error_code& ec) noexcept;
ise is_directory(pval)
işlevi döndürür directory_iterator(pval) == directory_iterator()
; aksi takdirde döndürür file_size(pval) == 0
.
is_fifo
bool is_fifo(file_status stat) noexcept;
bool is_fifo(const path& pval);
bool is_fifo(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::fifo
. Kalan işlevler döndürür is_fifo(status(pval))
.
is_other
bool is_other(file_status stat) noexcept;
bool is_other(const path& pval);
bool is_other(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::other
. Kalan işlevler döndürür is_other(status(pval))
.
is_regular_file
bool is_regular_file(file_status stat) noexcept;
bool is_regular_file(const path& pval);
bool is_regular_file(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::regular
. Kalan işlevler döndürür is_regular_file(status(pval))
.
is_socket
bool is_socket(file_status stat) noexcept;
bool is_socket(const path& pval);
bool is_socket(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::socket
. Kalan işlevler döndürür is_socket(status(pval))
.
is_symlink
bool is_symlink(file_status stat) noexcept;
bool is_symlink(const path& pval);
bool is_symlink(const path& pval, error_code& ec) noexcept;
İlk işlev döndürür stat.type() == file_type::symlink
. Kalan işlevler döndürür is_symlink(status(pval))
.
last_write_time
file_time_type last_write_time(const path& pval);
file_time_type last_write_time(const path& pval, error_code& ec) noexcept;
void last_write_time(const path& pval, file_time_type new_time);
void last_write_time(const path& pval, file_time_type new_time, error_code& ec) noexcept;
İlk iki işlev için pval
son veri değişikliğinin zamanını veya file_time_type(-1)
bir hata oluşursa döndürür. Son iki işlev için pval
son veri değişikliğinin zamanını olarak new_time
ayarlar.
permissions
void permissions(const path& pval, perms mask);
void permissions(const path& pval, perms mask, error_code& ec) noexcept;
İşlevler tarafından pval
seçilen yol adının izinlerini denetimi perms & (perms::add_perms | perms::remove_perms)
altında olarak mask & perms::mask
ayarlar. mask
ve perms::remove_perms
'lerinden perms::add_perms
en fazla birini içermelidir.
ise mask & perms::add_perms
, işlevler izinleri olarak status(pval).permissions() | mask & perms::mask
ayarlar. Aksi takdirde, işlevleri mask & perms::remove_perms
izinleri olarak status(pval).permissions() & ~(mask & perms::mask)
ayarlar. Aksi takdirde, işlevler izinleri olarak mask & perms::mask
ayarlar.
proximate
path proximate(const path& p, error_code& ec);
path proximate(const path& p, const path& base = current_path());
path proximate(const path& p, const path& base, error_code& ec);
read_symlink
path read_symlink(const path& pval);
path read_symlink(const path& pval, error_code& ec);
İşlevler bir hata bildirir ve ise !is_symlink(pval)
döndürürpath()
. Aksi takdirde, işlevler sembolik bağlantıyı içeren türde path
bir nesne döndürür.
relative
path relative(const path& p, error_code& ec);
path relative(const path& p, const path& base = current_path());
path relative(const path& p, const path& base, error_code& ec);
remove
bool remove(const path& pval);
bool remove(const path& pval, error_code& ec) noexcept;
İşlevler yalnızca dosya başarıyla kaldırılırsa exists(symlink_status(pval))
döndürülertrue
. Symlink'in kendisi kaldırılır, seçtiği dosya kaldırılmaz.
remove_all
uintmax_t remove_all(const path& pval);
uintmax_t remove_all(const path& pval, error_code& ec) noexcept;
Bir dizinse pval
, işlevler tüm dizin girdilerini özyinelemeli olarak kaldırır ve girdinin kendisini kaldırır. Aksi takdirde işlevler çağrısında remove
bulunur. Başarıyla kaldırılan tüm öğelerin sayısını döndürür.
rename
void rename(const path& from, const path& to);
void rename(const path& from, const path& to, error_code& ec) noexcept;
İşlevler olarak olarak yeniden adlandırır. Bir symlink, seçtiği dosya değil, kendisi yeniden adlandırılır.
resize_file
void resize(const path& pval, uintmax_t size);
void resize(const path& pval, uintmax_t size, error_code& ec) noexcept;
İşlevler bir dosyanın boyutunu değiştirerek file_size(pval) == size
space
space_info space(const path& pval);
space_info space(const path& pval, error_code& ec) noexcept;
işlevi tarafından pval
seçilen birim hakkındaki bilgileri türünde space_info
bir yapıda döndürür. Yapı, belirlenemez herhangi bir değer için içerir uintmax_t(-1)
.
status
file_status status(const path& pval);
file_status status(const path& pval, error_code& ec) noexcept;
İşlevler ile pval
ilişkilendirilmiş yol adı durumunu, dosya türünü ve izinleri döndürür. Bir symlink kendisi test değildir, ancak seçtiği dosyadır.
status_known
bool status_known(file_status stat) noexcept;
İşlev şunu döndürür: stat.type() != file_type::none
swap
void swap(path& left, path& right) noexcept;
İşlev, sol ve sağın içeriğini değiştirir.
symlink_status
file_status symlink_status(const path& pval);
file_status symlink_status(const path& pval, error_code& ec) noexcept;
İşlevler, ile pval
ilişkilendirilmiş yol adı symlink durumunu, dosya türünü ve izinleri döndürür. İşlevler, symlink'in seçtiği dosya değil, kendisi test edilmiş olması dışında aynı status(pval)
şekilde davranır.
system_complete
path system_complete(const path& pval);
path system_complete(const path& pval, error_code& ec);
İşlevler, gerektiğinde kök adıyla ilişkilendirilmiş geçerli dizini dikkate alan mutlak bir yol adı döndürür. (POSIX için işlevler döndürür absolute(pval)
).
temp_directory_path
path temp_directory_path();
path temp_directory_path(error_code& ec);
İşlevler, geçici dosyalar içermeye uygun bir dizin için yol adı döndürür.
u8path
template <class Source>
path u8path(const Source& source);
template <class InIt>
path u8path(InIt first, InIt last);
İlk işlev ile path(source)
aynı, ikinci işlev ise her durumda seçilen kaynağın UTF-8 olarak kodlanmış karakter öğelerinin dizisi olarak alınması dışında, dosya sistemiyle path(first, last)
aynı şekilde davranır.
weakly_canonical
path weakly_canonical(const path& p);
path weakly_canonical(const path& p, error_code& ec);
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