该头文件(boost/filesystem.hpp
)描述了C ++程序可用于执行 涉及文件系统 的操作的组件,包括 路径、常规文件 和 目录。
参考链接:https://www.boost.org/doc/libs/1_69_0/libs/filesystem/doc/reference.html#Header-filesystem-synopsis
namespace boost
{
namespace filesystem
{
class path;
class filesystem_error;
class directory_entry;
class directory_iterator;
class recursive_directory_iterator;
class file_status;
enum file_type
{
status_error, file_not_found, regular_file, directory_file,
symlink_file, block_file, character_file, fifo_file, socket_file,
type_unknown
};
enum perms
{
no_perms,
owner_read, owner_write, owner_exe, owner_all,
group_read, group_write, group_exe, group_all,
others_read, others_write, others_exe, others_all, all_all,
set_uid_on_exe, set_gid_on_exe, sticky_bit,
perms_mask, perms_not_known,
add_perms, remove_perms, symlink_perms
};
struct space_info // returned by space function
{
uintmax_t capacity;
uintmax_t free;
uintmax_t available; // free space available to non-privileged process
};
enum class copy_option
{
none
fail_if_exists = none,
overwrite_if_exists
};
enum class symlink_option
{
none
no_recurse = none,
recurse
};
/** 直接用于操作的函数 **/
path absolute(const path& p, const path& base=current_path());
path canonical(const path& p, const path& base = current_path());
path canonical(const path& p, system::error_code& ec);
path canonical(const path& p, const path& base, system::error_code& ec);
void copy(const path& from, const path& to);
void copy(const path& from, const path& to, system::error_code& ec);
void copy_directory(const path& from, const path& to);
void copy_directory(const path& from, const path& to, system::error_code& ec);
void copy_file(const path& from, const path& to);
void copy_file(const path& from, const path& to, system::error_code& ec);
void copy_file(const path& from, const path& to, copy_option option);
void copy_file(const path& from, const path& to, copy_option option, system::error_code& ec);
void copy_symlink(const path& existing_symlink, const path& new_symlink);
void copy_symlink(const path& existing_symlink, const path& new_symlink, system::error_code& ec);
bool create_directories(const path& p);
bool create_directories(const path& p, system::error_code& ec);
bool create_directory(const path& p);
bool create_directory(const path& p, system::error_code& ec);
void create_directory_symlink(const path& to, const path& new_symlink);
void create_directory_symlink(const path& to, const path& new_symlink, system::error_code& ec);
void create_hard_link(const path& to, const path& new_hard_link);
void create_hard_link(const path& to, const path& new_hard_link, system::error_code& ec);
void create_symlink(const path& to, const path& new_symlink);
void create_symlink(const path& to, const path& new_symlink, system::error_code& ec);
path current_path();
path current_path(system::error_code& ec);
void current_path(const path& p);
void current_path(const path& p, system::error_code& ec);
bool exists(file_status s) noexcept;
bool exists(const path& p);
bool exists(const path& p, system::error_code& ec) noexcept;
bool equivalent(const path& p1, const path& p2);
bool equivalent(const path& p1, const path& p2, system::error_code& ec);
uintmax_t file_size(const path& p);
uintmax_t file_size(const path& p, system::error_code& ec);
uintmax_t hard_link_count(const path& p);
uintmax_t hard_link_count(const path& p, system::error_code& ec);
const path& initial_path();
const path& initial_path(system::error_code& ec);
bool is_directory(file_status s) noexcept;
bool is_directory(const path& p);
bool is_directory(const path& p, system::error_code& ec) noexcept;
bool is_empty(const path& p);
bool is_empty(const path& p, system::error_code& ec);
bool is_other(file_status s) noexcept;
bool is_other(const path& p,);
bool is_other(const path& p, system::error_code& ec) noexcept;
bool is_regular_file(file_status s) noexcept;
bool is_regular_file(const path& p);
bool is_regular_file(const path& p, system::error_code& ec) noexcept;
bool is_symlink(file_status s noexcept);
bool is_symlink(const path& p);
bool is_symlink(const path& p, system::error_code& ec) noexcept;
std::time_t last_write_time(const path& p);
std::time_t last_write_time(const path& p, system::error_code& ec);
void last_write_time(const path& p, const std::time_t new_time);
void last_write_time(const path& p, const std::time_t new_time, system::error_code& ec);
path read_symlink(const path& p);
path read_symlink(const path& p, system::error_code& ec);
path relative(const path& p, system::error_code& ec);
path relative(const path& p, const path& base=current_path());
path relative(const path& p, const path& base, system::error_code& ec);
bool remove(const path& p);
bool remove(const path& p, system::error_code& ec);
uintmax_t remove_all(const path& p);
uintmax_t remove_all(const path& p, system::error_code& ec);
void rename(const path& from, const path& to);
void rename(const path& from, const path& to, system::error_code& ec);
void resize_file(const path& p, uintmax_t size);
void resize_file(const path& p, uintmax_t size, system::error_code& ec);
space_info space(const path& p);
space_info space(const path& p, system::error_code& ec);
file_status status(const path& p);
file_status status(const path& p, system::error_code& ec) noexcept;
bool status_known(file_status s) noexcept;
file_status symlink_status(const path& p);
file_status symlink_status(const path& p, system::error_code& ec) noexcept;
path system_complete(const path& p);
path system_complete(const path& p, system::error_code& ec);
path temp_directory_path();
path temp_directory_path(system::error_code& ec);
path unique_path(const path& model="%%%%-%%%%-%%%%-%%%%");
path unique_path(const path& model, system::error_code& ec);
path weakly_canonical(const path& p);
path weakly_canonical(const path& p, system::error_code& ec);
} // namespace filesystem
} // namespace boost