C++文件系统

2023-05-16

filesystem

#include <filesystem>
#include <iostream>
using namespace std;
int main()
{
	//打开文件夹
	filesystem::path url("file");
	//判断当前文件夹是否存在
	if (!filesystem::exists(url))
	{
		cout << "相对路径文件夹不存在" << endl;
	}
	//创建单层文件夹,路径存在不做其他操作
	filesystem::create_directory("file");
	//存储错误信息
	error_code err;
	//将文件夹是否创建成功的信息存入
	filesystem::create_directory("file/x", err);
	//将存储的错误信息打印出来
	cout << err.message() << endl;
	//创建多层文件夹
	filesystem::create_directories("sss/ss/s", err);
	cout << err.message() << endl;
	//删除根文件夹
	filesystem::remove_all(url);
	//获取文件最后一次的操作时间
	auto time = filesystem::last_write_time("sss");
	//获取时间戳
	cout << time.time_since_epoch().count() << endl;
	//获取当前路径
	filesystem::path CUR = filesystem::current_path();
	cout << CUR<< endl;
	cout << CUR.root_directory() << endl;//根目录
	cout << CUR.relative_path() << endl;//相对路径
	cout << CUR.root_name() << endl;//根名
	cout << CUR.root_path() << endl;//根路径
	return 0;
}

文件状态的判断

#include <filesystem>
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
void test(filesystem::file_status temp)
{
	switch (temp.type())
	{
	case filesystem::file_type::regular:
		cout << "磁盘文件" << endl;
		break;
	case filesystem::file_type::directory:
		cout << "目录文件" << endl;
		break;
	case filesystem::file_type::not_found:
		cout << "未知文件" << endl;
		break;
	case	filesystem::file_type::unknown:
		cout << "无法识别文件" << endl;
		break;
	}
}
int main()
{
	filesystem::create_directory("file");
	test(filesystem::status("file"));//目录文件
	fstream File("file\\test.dat", ios::out | ios::trunc);
	if (!File)
	{
		cout << "创建失败" << endl;
	}
	test(filesystem::status("file\\test.dat"));//磁盘文件
	return 0;
}

遍历删除文件

#include <filesystem>
#include <iostream>
#include <string>
#include <set>
using namespace std;
//遍历当前目录下所有文件
void traverseDirectory()
{
	filesystem::path url("D:\\");
	if (!filesystem::exists(url))
	{
		cout << "当前文件不存在" << endl;
		return ;
	}
	//选定文件路口
	filesystem::directory_entry input_url(url);
	if (input_url.status().type() != filesystem::file_type::directory)
	{
		cout << "url不是目录" << endl;
	}
	else
	{
		filesystem::directory_iterator Iter(url);
		for (auto v : Iter)
		{
			cout << v.path() << endl;
		}
	}
}
//遍历当前文件夹下所有文件
void traverseDirectoryAllfile()
{
	filesystem::path url("D:\\vs2022\\Common7");
	if (!filesystem::exists(url))
	{
		cout << "当前文件不存在" << endl;
		return;
	}
	set<string> dirset;
	filesystem::recursive_directory_iterator begin(url);
	for (filesystem::recursive_directory_iterator end; begin != end; ++begin)
	{
		if (!filesystem::is_directory(begin->path()))
		{
			dirset.insert(begin->path().filename().string());
		}
	}

	for (auto v : dirset)
	{
		cout << v << endl;
	}
}
//删除
void deleteURLALLFile()
{
	//获取当前路径
	filesystem::path root = filesystem::current_path();
	set<string> dirset;
	for (filesystem::directory_iterator end, begin(root); begin != end; ++begin)
	{
		if (!filesystem::is_directory(begin->path()))//判断是否获取文件名
		{
			dirset.insert(begin->path().filename().string());
		}
	}
	for(auto v:dirset)
	{
		if(v!="cpp实验场.exe")
		filesystem::remove_all(v);
	}
}
int main()
{
	return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++文件系统 的相关文章

  • Linux文件系统--文件类型

    Linux中一切都是文件 xff0c 文件类型有多种 xff0c 使用ls l命令可以查看文件属性 xff0c 所显示结果的第一列的第一个字符用来表示文件类型 xff0c 如下 xff1a 1 普通文件 第一列第一个字符为 的文件为普通文件
  • [CentOS入门](三)文件系统

    Linux文件系统结构树 xff1a 目录中颜色的含义 xff1a 青色 xff1a 指向另外一个位置 xff0c 软连接 ls显示文件夹中的文件链接指向位置 xff1a ls folder l蓝色 xff1a 一个文件夹绿色 xff1a
  • 300来行代码带你实现一个能跑的最小Linux文件系统

    Linux作为一个类UNIX系统 xff0c 其文件系统保留了原始UNIX文件系统的表象形式 xff0c 它看起来是这个样子 xff1a root 64 name VirtualBox ls bin boot cdrom dev etc h
  • 解析FAT16文件系统

    引导扇区的信息例如以下 xff1a 1 偏移地址00H xff0c 长度3 xff0c 内容 xff1a EB 3C 90 跳转指令 2 偏移地址03H xff0c 长度8 内容 xff1a 4D 53 44 4F 53 35 2E 30
  • nuttx和linux区别,Nuttx文件系统

    1 介绍 文件系统 xff0c 是对一个存储设备上的数据和元数据进行组织的机制 xff0c 它是操作系统管理持久性数据的子系统 xff0c 提供数据存储和访问功能 将一个文件系统与一个存储设备关联起来的过程叫做挂载 mount xff0c
  • Linux文件系统(一)文件系统基本概念

    文件系统基本概念 1 文件系统概述2 文件系统的类型 xff08 1 xff09 ext系列 xff08 2 xff09 Reiserfs 3 Ubuntu文件系统的结构 xff08 1 xff09 概述 xff08 2 xff09 路径
  • Linux文件系统(四)文件系统管理命令

    1 文件系统的基本操作 2 目录的基本操作 3 查看文件内容 4 文件类型 5 查询文件 6 其他管理命令
  • ZYNQ 安装ubuntu文件系统

    ZYNQ 7020 Ubuntu16 04文件系统安装 在关于zynq openamp的章节我们已经完成了zynq 的u boot 内核 xff0c 设备树的制作 xff0c 通过XSDK完成了启动文件的创建 同样道理制作zynq7020的
  • IOS_swift文件系统

    func files 应用根目录 let dir NSHomeDirectory NSLog dir dir 文档目录 let doc NSSearchPathForDirectoriesInDomains DocumentDirector
  • Linux 读文件 - readahead预读算法

    顺序读场景 intmain charc 4096 intin 1 in open news txt O RDONLY intindex 0 while read in c 4096 4096 printf index d len ld n
  • 六、操作系统之文件管理

    六 文件管理 文件系统的概念 文件系统时OS与用户关系最紧密的一部分 对用户来说 它是OS中最直观的部分 能否方便使用OS 以及OS的可信赖程度往往取决于文件系统的功能和性能 1 文件和文件系统 2 文件系统的功能 3
  • ext4 delay allocation之ext4_writepages页回写源码剖析

    概述 ext4 write写入pagecache之后 再合适的时机会回写到磁盘 ext4文件系统中是通过ext4 writepages写入磁盘 本来将在源码角度分析该过程 建议先参照ext4 delay allocation数据结构 ngi
  • 物理磁盘的四种使用方式

    一 物理磁盘整个直接使用 把整个物理磁盘直接格式话成文件系统 然后mount 二 通过分区使用 把整个物理磁盘通过fdisk dev sdx这样分区 通过格式化各个分区来使用磁盘 三 通过逻辑卷使用 可以把整个物理磁盘作为一个物理卷pvcr
  • 基于S3C2440之TQ2440文件系统yaff2制作步骤

    TQ2440 yaff2文件系统制作 环境 开发板 tq2440 2M NOR 256 NAND W43 虚拟机 ubuntu14 04 LTS 编译器版本 arm linux gcc 4 3 2 busybox版本 busybox 1 1
  • GFS 阅读笔记

    这篇博客是我阅读著名的 GFS 论文 The Google File System 所总结的笔记以及自己一些的思考 这篇论文是一篇非常经典的论文 尤其对于想要了解分布式或者刚刚开始研究分布式的人来说 是一篇非常好的读物 它里面提到了许多分布
  • 简简单单吃个磁盘(硬盘?)

    前言 Version S Description Date By V1 C First Version 2020 10 24 AYZP C Create A Add M Modify D Delete 整理资料的时候 发现个磁盘的相关知识不
  • 【S5P6818】最小文件系统制作

    00 目录 文章目录 00 目录 01 BusyBox概述 02 下载BusyBox 03 编译BusyBox 04 最小文件系统制作 05 设置开发板参数 06 讨论 07 附录 01 BusyBox概述 BusyBox 是一个集成了三百
  • Python基础知识(九):文件与文件系统

    1 文件与文件系统 打开文件 open file mode r buffering None encoding None errors None newline None closefd True Open file and return
  • buffer_head数据结构

    内核版本 5 9 0 数据结构 Historically a buffer head was used to map a single block within a page and of course as the unit of I O
  • 磁盘类型和相关术语学习笔记

    磁盘类型和相关术语 在 Linux 中一切皆文件 但是类型不同 例如使用 ls l 对于设备文件和普通文件有一部分内容是不同的 即普通文件有大小 而设备文件有主设备号和次设备号 没有大小 ll 1 txt dev sda dev sda1

随机推荐

  • 实现手机app和微信小程序远程控制加人体探测自动化控制51单片机打开流水灯(ESP8266 STC89C52RC http请求转串口通信系统)

    首先你有这样的8266 这种8266自身带2个按键和烧录芯片方便调试 xff0c 综合性价比较高 有一个51单片机 或者其他芯片都行 还有就是需要这种人体红外探测模块和led灯 有了这2个芯片我们开始吧 xff01 1 先看一段视频效果演示
  • 图像算法之图像平移

    在图像处理领域中 xff0c 图像变换是最基本的算法 xff0c 本文主要详细分享一下图像平移算法的原理和代码实现 xff0c 废话不多说 xff0c 直接上干货 1 图像平移的原理 在计算机图像中 xff0c 主要是用的是 像素直角坐标系
  • OpenCV之Mat的详细介绍

    在opencv中 xff0c Mat作为图像的存储容器 xff0c 是非常基础也是非常重要的知识 xff0c 本文主要介绍Mat相关的操作 1 图像复制 再开始将拷贝之前 xff0c 先给大家分享一下浅拷贝和深拷贝 浅拷贝 xff1a 拷贝
  • windows下Linaro-arm-linux编译开启NEON的Opencv源码详细过程

    环境配置 1 windows安装cmake 下载地址 xff1a https cmake org download 按照上图中的下载cmake的安装包 xff0c 安装注意事项如下 xff1a 安装路径切记不能包含空格 xff01 xff0
  • Windows 工具之net

    net 是windows平台下用户管理的工具 xff0c 可以来添加 xff0c 删除和修改用户 1 创建用户 xff1a win 43 R 输入cmd xff0c 然后打开命令行窗口 xff0c 输入下面的命令 xff1a net use
  • windows平台相关命令收集

    1 获取IP地址命令 xff1a ipconfig 2 获取MAC地址命令 xff1a ipconfig all 3 查看所有端口信息 netstat nal findstr 8080
  • C/C++中比较好用的HTTP开源库

    以下是一些常用的C C 43 43 开源HTTP库及其对应的开源协议和链接 xff1a 1 libcurl xff1a 使用MIT X开源协议 xff0c 支持多种协议和多种数据传输方式 xff0c 被广泛应用于各种开发场景 官网链接 xf
  • 为Ubuntu网页设置稳定的数据隧道

    网站作为互联网世界中的一个个门户 xff0c 是我们对外表达的窗口 xff0c 无数个人和企业通过这个窗口传递着信息 xff0c 这个传递信息的窗口必须稳定持续存在 xff0c 才能让更多访客看到 xff0c 为我们带来更多的流量 而使用c
  • VisualStudio配置与Matlab混合编译问题总结

    VisualStudio配置与Matlab混合编译问题总结 写这篇博客记录一下自己在配置过程中遇到的种种问题 xff0c 也做一个小小总结 xff0c 试图把整个过程讲明白 xff0c 希望对面临同样问题的人有所帮助 网上此类教程很多 xf
  • C++与C的区别(作业)

    头文件的区别 1 C 43 43 中创建源文件后缀为 cpp xff0c C语言中创建源文件后缀为 c xff0c 头文件保持不变 xff0c 后缀为 h 2 包含自己的头文件 xff0c C语言与C 43 43 无区别 包含库目录 xff
  • C++和C语言区别(二)附二级指针的动态内存申请

    结构体区别 1 定义结构体与C语言一致 2 定义变量可省略关键字struct 3 C 43 43 结构体中允许函数存在 xff08 C 43 43 在没有写构造函数和权限限定的时候 xff0c 用法和C语言一致 xff09 xff08 1
  • 自制芯片 http转串口通信模块实现手机控制加红外控制51单片机实现双控制 28BYJ-48步进电机( 13003步进电机驱动器 STC89C52RC ESP8266)

    首先你有这样的8266 这种8266自身带2个按键和烧录芯片方便调试 xff0c 综合性价比较高 还需要有一个51单片机 或者其他单片机都行 还有就是需要这样的13003步进电机驱动器 43 28BYJ 48步进电机和红外接收头以及遥控器
  • C++类和对象(附C语言与C++链表)

    类和对象的基本概念 1 类 xff1a 一系列事物的抽象 xff0c 万物皆可为类 xff08 1 xff09 属性 xff1a 事物的特征 数据类型的描述 xff08 2 xff09 行为 xff1a 事物的操作 函数描述 2 对象 xf
  • C++类的组合

    1 以另一个类的对象为数据成员 xff0c 必须采用初始化参数列表的写法 include lt iostream gt include lt string gt using namespace std class Boy public Bo
  • C++模板

    函数模板 1 把类型当作未知量 2 语法 template lt typename Ty gt Ty function Ty a Ty b return a gt b a b template lt class Ty1 class Ty2
  • C++STL容器(一)

    定长数组 include lt iostream gt include lt string gt include lt array gt using namespace std template lt class Ty size t siz
  • C++STL容器(二)

    链表 include lt iostream gt include lt string gt include lt list gt include lt functional gt 仿函数less和greater头文件 using name
  • C++正则表达式

    regex match regex replace regex search include lt iostream gt include lt regex gt include lt string gt using namespace s
  • C++时间管理和随机数

    时间段 include lt chrono gt duration TYPEDEFS typedef duration lt long long nano gt nanoseconds 纳秒 typedef duration lt long
  • C++文件系统

    filesystem include lt filesystem gt include lt iostream gt using namespace std int main 打开文件夹 filesystem path url 34 fil