<filesystem>
함수
헤더의 <filesystem>
이러한 무료 함수는 경로, 파일, symlink, 디렉터리 및 볼륨에 대한 수정 및 쿼리 작업을 수행합니다. 자세한 내용 및 코드 예제를 보려면 파일 시스템 탐색(C++)을 참조하세요.
absolute
path absolute(const path& pval, const path& base = current_path());
이 함수는 경로 이름 base
에 상대적인 pval
에 해당하는 절대 경로 이름을 반환합니다.
pval.has_root_name() && pval.has_root_directory()
인 경우 함수는pval
를 반환합니다.pval.has_root_name() && !pval.has_root_directory()
인 경우 함수는pval.root_name()
/absolute(base).root_directory()
/absolute(base).relative_path()
/pval.relative_path()
를 반환합니다.!pval.has_root_name() && pval.has_root_directory()
인 경우 함수는absolute(base).root_name()
/pval
를 반환합니다.!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;
두 함수 모두 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);
함수는 모두 절대 경로 이름 pabs = absolute(pval, base)
(또는 pabs = absolute(pval)
기본 매개 변수가 없는 오버로드)을 형성한 다음, 다음 단계 시퀀스에서 정식 형식으로 줄입니다.
에 의해 대체
read_symlink(X)
되는is_symlink(X)
모든 경로 구성 요소X
입니다true
.모든 경로 구성 요소(점이 이전 경로 구성
.
요소에 의해 설정된 현재 디렉터리임)가 제거됩니다.모든 경로 구성 요소
X
/..
쌍(점점은 이전 경로 구성 요소에 의해 설정된 부모 디렉터리임)이 제거됩니다.
그런 다음 함수는 .를 반환합니다 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;
함수는 모두 매개 변수가 없는 opts
오버로드에 대해 copy_options::none
수행되는 제어 대상opts
에서 하나 이상의 파일을 복사하거나 연결할 수 있습니다. opts
에는 다음 중 하나만 포함되어야 합니다.
skip_existing
,overwrite_existing
또는update_existing
copy_symlinks
또는skip_symlinks
directories_only
,create_symlinks
또는create_hard_links
함수는 먼저 다음의 file_status 값을 f
t
결정합니다.
if
opts & (copy_options::create_symlinks | copy_options::skip_symlinks)
,를 호출하여symlink_status
그렇지 않으면 호출하여
status
그렇지 않으면 오류를 보고합니다.
이 경우 !exists(f) || equivalent(f, t) || is_other(f) || is_other(t) || is_directory(f)&& is_regular_file(t)
오류를 보고하고 다른 작업을 수행하지 않습니다.
그렇지 않은 경우 다음을 수행합니다 is_symlink(f)
.
이면
options & copy_options::skip_symlinks
아무 것도 수행하지 않습니다.그렇지 않으면 ,
!exists(t)&& options & copy_options::copy_symlinks
.copy_symlink(from, to, opts)
그렇지 않으면 오류를 보고합니다.
그렇지 않으면 다음을 수행합니다.is_regular_file(f)
이면
opts & copy_options::directories_only
아무 것도 수행하지 않습니다.그렇지 않으면 ,
opts & copy_options::create_symlinks
.create_symlink(to, from)
그렇지 않으면 ,
opts & copy_options::create_hard_links
.create_hard_link(to, from)
그렇지 않으면 ,
is_directory(f)
.copy_file(from, to
/from.filename(), opts)
그렇지 않으면
copy_file(from, to, opts)
입니다.
그렇지 않으면 다음을 수행합니다.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);
}
}
그렇지 않으면 아무 작업도 수행하지 않습니다.
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;
함수는 모두 매개 변수가 없는 opts
오버로드에 대해 copy_options::none
수행되는 파일을 제어opts
할 때 파일을 복사 할 수 있습니다. opts
은 최대 하나 또는 .를 skip_existing
overwrite_existing
update_existing
포함해야 한다.
이면 exists(to) && !(opts & (copy_options::skip_existing | copy_options::overwrite_existing | copy_options::update_existing))
파일이 이미 있다는 오류로 보고합니다.
그렇지 않으면 !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))
파일의 내용과 특성을 파일로 복사하려고 시도합니다. 복사 시도가 실패하는 경우 오류로 보고합니다.
복사본이 시도되고 성공하면 함수가 반환되고, 그렇지 않으면 false
반환 true
됩니다.
copy_symlink
void copy_symlink(const path& from, const path& to);
void copy_symlink(const path& from, const path& to, error_code& ec) noexcept;
이 경우 is_directory(from)
함수는 .를 호출합니다 create_directory_symlink(from, to)
. 그렇지 않으면 호출 create_symlink(from, to)
합니다.
create_directories
bool create_directories(const path& pval);
bool create_directories(const path& pval, error_code& ec) noexcept;
같은 a\/b\/c
경로 이름의 경우 함수는 필요에 따라 디렉터리를 a
a\/b
만들 수 있도록 필요에 따라 디렉터리를 a\/b\/c
만듭니다. 실제로 디렉터리를 만드는 경우에만 반환 true
됩니다 pval
.
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;
이 함수는 필요에 따라 디렉터리 pval
을 만듭니다. 실제로 디렉터리를 만드는 경우에만 반환 true
되며, 이 경우 기존 파일attr
에서 사용 권한을 복사하거나 매개 변수 없이 attr
오버로드에 사용합니다perms::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;
함수는 디렉터리에 대한 symlink로 링크를 만듭니다.
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;
함수는 디렉터리 또는 파일에 대한 하드 링크로 링크를 만듭니다.
create_symlink
void create_symlink(const path& to, const path& link);
void create_symlink(const path& to, const path& link, error_code& ec) noexcept;
함수는 파일에 대한 symlink로 만듭니다link
.
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;
매개 변수 pval
이 없는 함수는 현재 디렉터리에 대한 경로 이름을 반환합니다. 나머지 함수는 현재 디렉터리를 pval
로 설정합니다.
end
directory_iterator& end(const directory_iterator& iter) noexcept;
recursive_directory_iterator& end(const recursive_directory_iterator& iter) noexcept;
첫 번째 함수가 반환 directory_iterator()
되고 두 번째 함수가 반환됩니다. recursive_directory_iterator()
equivalent
bool equivalent(const path& left, const path& right);
bool equivalent(const path& left, const path& right, error_code& ec) noexcept;
함수는 왼쪽과 오른쪽에서 동일한 파일 시스템 엔터티를 선택하는 경우에만 반환 true
됩니다.
exists
bool exists(file_status stat) noexcept;
bool exists(const path& pval);
bool exists(const path& pval, error_code& ec) noexcept;
첫 번째 함수는 status_known && stat.type() != file_not_found
를 반환합니다. 두 번째 및 세 번째 함수는 .exists(status(pval))
file_size
uintmax_t file_size(const path& pval);
uintmax_t file_size(const path& pval, error_code& ec) noexcept;
함수는 선택한 파일 pval
의 크기(바이트)를 반환하고 파일 크기를 확인할 수 있는 경우 exists(pval) && is_regular_file(pval)
반환합니다. 그렇지 않으면 오류를 보고하고 반환 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;
이 함수는 오류 발생 시 하드 링크 pval
수를 반환하거나 -1을 반환합니다.
hash_value
size_t hash_value(const path& pval) noexcept;
함수는 에 대한 해시 값을 반환합니다 pval.native()
.
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;
첫 번째 함수는 stat.type() == file_type::block
를 반환합니다. 나머지 함수는 .를 반환 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;
첫 번째 함수는 stat.type() == file_type::character
를 반환합니다. 나머지 함수는 .를 반환 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;
첫 번째 함수는 stat.type() == file_type::directory
를 반환합니다. 나머지 함수는 .를 반환 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;
이면 is_directory(pval)
함수가 반환 directory_iterator(pval) == directory_iterator()
됩니다. 그렇지 않으면 반환됩니다 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;
첫 번째 함수는 stat.type() == file_type::fifo
를 반환합니다. 나머지 함수는 .를 반환 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;
첫 번째 함수는 stat.type() == file_type::other
를 반환합니다. 나머지 함수는 .를 반환 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;
첫 번째 함수는 stat.type() == file_type::regular
를 반환합니다. 나머지 함수는 .를 반환 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;
첫 번째 함수는 stat.type() == file_type::socket
를 반환합니다. 나머지 함수는 .를 반환 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;
첫 번째 함수는 stat.type() == file_type::symlink
를 반환합니다. 나머지 함수는 .를 반환 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;
처음 두 함수는 마지막 데이터 수정 pval
시간을 반환하거나 file_time_type(-1)
오류가 발생하는 경우 반환합니다. 마지막 두 함수는 마지막 데이터 수정 pval
시간을 .로 new_time
설정합니다.
permissions
void permissions(const path& pval, perms mask);
void permissions(const path& pval, perms mask, error_code& ec) noexcept;
함수는 선택한 경로 이름 pval
에 대한 사용 권한을 제어perms & (perms::add_perms | perms::remove_perms)
할 수 있도록 mask & perms::mask
설정합니다. mask
은 최대 하나 perms::add_perms
만 포함해야 한다 perms::remove_perms
.
이 경우 mask & perms::add_perms
함수는 사용 권한을 status(pval).permissions() | mask & perms::mask
.로 설정합니다. 그렇지 않으면 mask & perms::remove_perms
함수가 사용 권한을 .로 설정합니다.status(pval).permissions() & ~(mask & perms::mask)
그렇지 않으면 함수는 사용 권한을 mask & perms::mask
.로 설정합니다.
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);
함수는 오류를 보고하고 다음 경우 !is_symlink(pval)
반환 path()
합니다. 그렇지 않은 경우 함수는 기호 링크를 포함하는 path
형식의 개체를 반환합니다.
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;
함수는 파일이 성공적으로 제거된 경우에만 exists(symlink_status(pval))
반환 true
됩니다. symlink 자체는 선택한 파일이 아니라 제거됩니다.
remove_all
uintmax_t remove_all(const path& pval);
uintmax_t remove_all(const path& pval, error_code& ec) noexcept;
pval
이 디렉터리이면 함수는 모든 디렉터리 항목을 재귀적으로 제거한 다음 항목 자체를 제거합니다. 그렇지 않으면 함수가 .를 호출 remove
합니다. 함수는 성공적으로 제거된 모든 요소의 수를 반환합니다.
rename
void rename(const path& from, const path& to);
void rename(const path& from, const path& to, error_code& ec) noexcept;
함수의 이름을 바꿉니다. symlink 자체는 선택한 파일이 아니라 이름이 바뀝니다.
resize_file
void resize(const path& pval, uintmax_t size);
void resize(const path& pval, uintmax_t size, error_code& ec) noexcept;
함수는 파일의 크기를 변경합니다. file_size(pval) == size
space
space_info space(const path& pval);
space_info space(const path& pval, error_code& ec) noexcept;
이 함수는 형식 space_info
구조에서 선택한 pval
볼륨에 대한 정보를 반환합니다. 구조체에는 uintmax_t(-1)
확인할 수 없는 모든 값이 포함됩니다.
status
file_status status(const path& pval);
file_status status(const path& pval, error_code& ec) noexcept;
함수는 연결된 경로 이름 상태, 파일 형식 및 사용 권한을 반환합니다 pval
. symlink 자체는 테스트되지 않고 선택한 파일입니다.
status_known
bool status_known(file_status stat) noexcept;
함수가 반환됩니다. stat.type() != file_type::none
swap
void swap(path& left, path& right) noexcept;
함수는 왼쪽과 오른쪽의 내용을 교환합니다.
symlink_status
file_status symlink_status(const path& pval);
file_status symlink_status(const path& pval, error_code& ec) noexcept;
함수는 연결된 pathname symlink 상태, 파일 형식 및 사용 권한을 반환합니다 pval
. 함수는 선택한 파일이 아니라 symlink 자체가 테스트된다는 점을 제외하고 동일하게 status(pval)
동작합니다.
system_complete
path system_complete(const path& pval);
path system_complete(const path& pval, error_code& ec);
이 함수는 필요에 따라 루트 이름과 연결된 현재 디렉터리를 고려하는 절대 경로 이름을 반환합니다. (POSIX의 경우 함수가 반환 absolute(pval)
됨).
temp_directory_path
path temp_directory_path();
path temp_directory_path(error_code& ec);
이 함수는 임시 파일을 포함하는 데 적합한 디렉터리의 경로 이름을 반환합니다.
u8path
template <class Source>
path u8path(const Source& source);
template <class InIt>
path u8path(InIt first, InIt last);
첫 번째 함수는 파일 시스템에 관계없이 UTF-8로 인코딩된 문자 요소 시퀀스로 각 사례에서 선택한 소스가 수행된다는 점을 제외하고 두 번째 함수와 동일하게 path(source)
동작 path(first, last)
합니다.
weakly_canonical
path weakly_canonical(const path& p);
path weakly_canonical(const path& p, error_code& ec);