当前位置: 首页 > news >正文

C++17 std::filesystem

std::filesystem 是 C++17 标准引入的文件系统库,提供了一套用于处理文件和目录的 API。它主要包括以下几个核心类:

std::filesystem::path:用于表示文件系统路径。它提供了一系列方法,允许你对路径进行各种操作,如拼接、分解、获取文件名等。路径可以是相对路径或绝对路径,可以包含文件名、目录名等信息。
std::filesystem::directory_entry:用于表示目录中的一个条目,可以是文件或目录。你可以使用这个类来检查目录中的条目类型、获取条目路径等信息。
std::filesystem::directory_iterator :是一个用于遍历目录内容的迭代器。你可以使用它来遍历目录中的所有文件和子目录,并获取它们的信息。

std::filesystem::create_directory:用于创建目录
std::filesystem::remove :用于删除文件或目录

一些常用功能示例

#include <iostream>
#include <filesystem>namespace fs = std::filesystem;int main() 
{// 构造路径fs::path currentPath = fs::current_path();fs::path filePath = currentPath / "example" / "test.txt";// 获取路径信息std::cout << "Current Path: " << currentPath << std::endl;std::cout << "File Path: " << filePath << std::endl;std::cout << "File Name: " << filePath.filename() << std::endl;std::cout << "Parent Path: " << filePath.parent_path() << std::endl;std::cout << "Root Path: " << filePath.root_path() << std::endl;std::cout << "Extension: " << filePath.extension() << std::endl;// 连接路径fs::path subdir = "subdirectory";fs::path combinedPath = filePath.parent_path() / subdir / filePath.filename();std::cout << "Combined Path: " << combinedPath << std::endl;// 迭代目录下该目录下所有文件的路径std::cout << "Contents of current directory:" << std::endl;for (const auto& entry : fs::directory_iterator(currentPath)) {std::cout << entry.path() << std::endl;}// 检查路径是否存在std::cout << "File exists: " << fs::exists(filePath) << std::endl;// 文件更名fs::rename(filePath, filePath.parent_path() / "ttttt.txt");std::cout << "File Path: " << filePath << std::endl;return 0;
}
http://www.lryc.cn/news/224861.html

相关文章:

  • JVM在线分析-解决问题的工具一(jinfo,jmap,jstack)
  • [深度学习]不平衡样本的loss
  • 【MySQL】表的增删改查(强化)
  • MyBatis-Plus--在xml中使用wrapper的方法
  • Oracle RAC是啥?
  • springboot中定时任务cron不生效,fixedRate指定间隔失效,只执行一次的问题
  • 苹果手机发热发烫是什么原因?看完这篇你就知道了!
  • 民安智库(第三方满意度调研公司):助力健身房提升客户满意度的秘密武器
  • 2011年09月01日 Go生态洞察:Go语言词法扫描与App Engine演示
  • pytorch搭建squeezenet网络的整套工程(升级版)
  • 222. 完全二叉树的节点个数
  • adb and 软件架构笔记
  • 算术运算符、自增自减运算符、赋值运算符、关系运算符、逻辑运算符、三元运算符
  • k8s 配置资源管理
  • expo + react native项目隐藏状态栏踩坑
  • 若依:用sqlite3随便掰饬掰饬
  • 刚安装的MySQL使用Navicat操作数据库遇到的问题
  • 物奇平台耳机宕机恢复功能实现
  • 前端学习地址_备忘录(随时更新)
  • 安卓数据恢复工具哪个强? 10 个最佳 Android 数据恢复应用程序
  • 在IDEA中配置Web开发环境
  • Cesium 相机设置
  • 【虹科干货】TWAMP:什么是双向主动测量协议?
  • bool型的盲注
  • 聊聊logback的ShutdownHook
  • 【第2章 Node.js基础】2.4 Node.js 全局对象...持续更新
  • 大数据毕业设计选题推荐-河长制大数据监测平台-Hadoop-Spark-Hive
  • Unity与java后端UDP通信
  • vue3 - swiper插件 实现PC端的 视频滑动功能(仿抖音短视频)
  • 简述SVM