IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> BOOST库学习之文件系统库 -> 正文阅读

[C++知识库]BOOST库学习之文件系统库

前言

本次笔记记录如下知识点

  1. filesystem库的使用

一、filesystem库的使用

1、filesystem库的介绍

  • filesystem库是一个可移植的文件系统操作库,使用POSIX标准表示文件系统的路径,需要包含头文件:
#include <boost/filesystem.hpp>
using namespace boost::filesystem;
  • filesystem库的核心类是path,它屏蔽了不同文件系统的差异,使用可移植的POSIX语法提供了通用的目录,路径表示,并且支持POSIX的符号链接概念。实现代码如下:
class path
{
public:
	//路径的字符类型
	typedef char_or_wchar_t       value_type;
	//路径使用的字符串类型
	typedef std::basic_string<value_type> string_type;
	//路径分隔符
	constexpr value_type      preferred_separator;

	//构造函数
	path();
	path(const path& p);
	path(Source const& source);
	path(Inputiterator begin, Inputiterator end);

	//赋值操作
	path& opertor= (const path& p);
	path& opertor= (Source const& source);
	path& assign(Source const& source);
	path& assign(Inputiterator begin, Inputiterator end);

	//重载/= 和追加路径
	path& opertor/= (const path& p);
	path& opertor/= (Source const& source);
	path& append(Source const& source);
	path& append(Inputiterator begin, Inputiterator end);

	//重载+= 和链接路径
	path& opertor+= (const path& p);
	path& opertor+= (const string_type& source);
	path& opertor+= (Source const& source);
	path& concat(Inputiterator begin, Inputiterator end);

	//清空路径表示
	void  clear();
	//删除文件名
	path& remove_filename();
	//更改文件名
	path& replace_extension();
	//交换操作
	void  swap(path& rhs);

	//本地路径表示
	const  string_type& native() const;
	//转换为C字符串
	const  value_type* c_str() const;
	//转换为字符串
	const  string   string() const;
	//转换为框字符串
	const  wstring  wstring() const;
	
	//比较路径
	int  compare(const path& p) const;
	int  compare(const std::string& s) const;
	int  compare(const value_type* s)  const;

	//根名称
	path root_name() const;
	//根目录
	path root_directory() const;
	//根路径
	path root_path() const;
	//相对路径
	path relative_path() const;
	//父路径
	path parent_path() const;
	//文件名
	path filename() const;
	//全路径名
	path stem() const;
	//扩展名
	path extension() const;

	//是否为空路径
	bool empty() const;
	//是否有根名称
	bool has_root_name() const;
	//是否有根目录
	bool has_root_directory() const;
	//是否有根路径
	bool has_root_path() const;
	//是否有相对路径
	bool has_relative_path() const;
	//是否有父路径
	bool has_parent_path() const;
	//是否有文件名
	bool has_filename() const;
	//是否有全路径名
	bool has_stem() const;
	//是否有扩展名
	bool has_extension() const;
	//是否是绝对路径
	bool is_absolute() const;
	//是否是相对路径
	bool relative() const;

	//迭代路径
	iterator begin() const;
	iterator end() const;	
};

2、路径表示

  • 路径的分隔符是由类内部的静态常量preferred_separator定义,linux是斜杆“/”,windows是反斜杆“\”。点号“.”表示当前目录,双点号“…” 表示上一级目录。例如:
path p1("./a_dir");
path p2("/usr/local/lib");
  • operator+=和concat的作用与operator/=类似,operator+=和concat的作用是连接字符串,不会添加路径分隔符,operator/=的作用是追加字符,会添加斜杆。
    代码示例如下

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-26 11:56:22  更:2021-08-26 11:56:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:43:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码