boost 文件操作

如果要简单处理文件和文件夹的时候(删除、重命名等),使用Windows的系统函数会十分麻烦,可以尝试一下使用Boost库来进行处理

头文件

#include <boost/filesystem.hpp>

如果要获得每次处理的结果错误码,需要加上头文件:

#include <boost/system/error_code.hpp>
boost::system::error_code err;

如果不需要的话只需要把err去掉

以下路径均为绝对路径

基础类型

boost::filesystem::path filepath;

判断文件/文件夹是否存在:

boost::filesystem::exists(filepath, err)
//true 存在
//false 不存在

判断文件路径是否文件夹:

boost::filesystem::is_directory(filepath, err)
//true 是
//false 不是

删除文件:

boost::filesystem::remove(filepath, err)
//true 删除成功
//false 删除失败

重命名文件:

boost::filesystem::rename(oldname, newname, err)

创建文件/文件夹:

boost::filesystem::create_directories(filepath, err)

获取当前路径:

boost::filesystem::current_path()

复制文件/文件夹:

boost::filesystem::copy(frompath, topath)

遍历文件夹:

boost::filesystem::directory_iterator fileIter(filepath);
boost::filesystem::directory_iterator enditer;
for (; fileIter != enditer; ++fileIter) {//每个文件的路径fileIter->path();
}

判断文件是否存在父目录

filepath.has_root_directory()
//true 存在父目录
//false 不存在

获取当前文件路径的父目录

filepath.parent_path()

判断当前文件路径是否是 ‘.’/’…’(遍历的时候可能用得上):

filepath.filename_is_dot()
filepath.filename_is_dot_dot()

如果需要,还可以将文件路径转成string或wstring

filepath->string()
filepath->wstring()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/376209.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让“是男人就下到100层”在Android平台上跑起来

原工程:https://github.com/jeekun/DownFloors 移植后的代码&#xff1a;HelloCpp.zip 移植后的APK&#xff1a;HelloCpp.apk 说明&#xff1a;&#xff08;cocos2d-x版本是“ 2.2&#xff09; 1.该工程是直接在HelloCpp上修改完成,所以包名也不修改了 2.原工程里面可能是采用g…

Codeforces Round #277 (Div. 2) 题解

Codeforces Round #277 (Div. 2)A. Calculating Functiontime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputFor a positive integer n lets define a function f: f(n)   - 1  2 - 3  ..  ( - 1)nn Your …

QT 边框圆角处理

平时的边框是平角的&#xff1a; 如果需要圆角的话&#xff0c;就要加stylesheet加上这个&#xff1a; border-radius:3px;比如&#xff1a; QPushButton{ border-radius:3px; }就变成圆角了&#xff1a; px前面的数字越大就越圆&#xff0c;比如5px比3px圆 假如只需要某一…

3级调度 fpga_Vivado HLS学习笔记——1.了解FPGA架构

本篇文章为本人学习Xilinx的Vivado HLS教程记录的学习笔记&#xff0c;仅供学习参考。Vivado HLS官方视频教程&#xff1a;优酷视频​v.youku.com目录&#xff1a; Vivado HLS课程简介FPGA与CPU、GPU、DSP的区别FPGA的优势Xilinx FPGA架构:逻辑单元、算术逻辑单元、存储单元使用…

[LeetCode]Maximum Depth of Binary Tree

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 思考&#xff1a;DFS。 /*** Definition for binary tree* struct TreeNode {* int val;* Tree…

BZOJ2435 [Noi2011]道路修建

这是NOI11年题&#xff0c;你在逗我&#xff1f; 直接dfs就可以了&#xff0c;Linux下貌似不会爆栈。。。 1 /**************************************************************2 Problem: 24353 User: rausen4 Language: C5 Result: Accepted6 Time:5184 …

Qt异常结束程序无法重新运行

有时候代码有问题会导致qt异常结束 修改完后重新运行又会出现 查看任务管理器又没有这个进程 可以使用资源管理器打开看看 也可以考虑使用process explorer查看 发现程序挂起来&#xff0c;结束掉它就可以重新运行了

hadooppythonsql_半小时搞定Hadoop+Mysql+Hive+Python

1. 说明搭建过Hadoop集群的小伙伴一定知道&#xff0c;如果不用docker&#xff0c;半小时配好HadoopMysqlHive(后简称Hive)肯定是胡吹&#xff0c;有了Docker镜像&#xff0c;没有说明文档&#xff0c;配好了也不一定会用。本文将介绍如何在半小时内&#xff0c;让Hive在你的Li…

PHP 切割字符串 点号 不用双斜杠

$name "tupian.png"; $nameArr explode(".", $name); 习惯了Java的程序员容易写成 $nameArr explode("\\.", $name);//在PHP中是不正确的转载于:https://www.cnblogs.com/wuyou/p/3463425.html

Qt新添加的类无法链接

通过这个方法给工程添加了个类&#xff1a; 编译的时候就出现了这个问题&#xff1a; 执行一下qmake 然后再重新构建项目就可以了

URAL 1830 Help in the RNOS 思路,读题 难度:1

http://acm.timus.ru/problem.aspx?space1&num1830 这道题需要理解题目操作的意思, 要更改第i位的状态,第i-1位必须激活为1,0-i-2位必须为0,如果0-i-1位开始时全为0,那么从0位开始进行操作 一.首先考虑对于0-i-1位都是0,需要更改i位的情况,需要 1.更改i-1位,2.按一下打开下…

openssh升级sftp_OpenSSH 8.2 发布 包括 sftp 客户端和服务器支持

OpenSSH 8.2 发布了。OpenSSH 是 100% 完整的 SSH 协议 2.0 版本的实现&#xff0c;并且包括 sftp 客户端和服务器支持。此版本变化不少&#xff0c;其中有两个地方值得特别关注。一个是新特性&#xff0c;此版本增加了对 FIDO/U2F 硬件身份验证器的支持。FIDO/U2F 是廉价硬件双…

任务队列摘自新锋

在开发C程序时&#xff0c;一般在吞吐量、并发、实时性上有较高的要求。设计C程序时&#xff0c;总结起来可以从如下几点提高效率&#xff1a; l 并发l 异步l 缓存下面将我平常工作中遇到一些问题例举一二&#xff0c;其设计思想无非以上三点。 1任务队列 1.1 以生产者-消…

C++容器遍历时删除元素

vector 错误做法 这样做会在遍历过程中越界导致程序崩溃 std::vector<int> vecInt({ 1, 3, 2, 1, 4, 1 });for (auto i vecInt.begin(); i ! vecInt.end() ; i) {if (*i 1) {vecInt.erase(i);}}正确做法 std::vector<int> vecInt({ 1, 3, 2, 1, 4, 1 });for (a…

按钮图片拉伸_图片墙有多香?高手都在用的PPT封面制作技巧!

大家好&#xff0c;我是李导~这次&#xff0c;冬天是真的来了&#xff0c;不知道大家有没有感觉&#xff0c;每次冷空气真正袭来之前我们都会以为今年是个暖冬&#xff0c;结果突然有一天气温从20度直降到个位数&#xff0c;我们都会认为今年比以往的冬天都冷。但是&#xff0c…

POJ 1745 Divisibility【DP】

题意&#xff1a;给出n,k,n个数&#xff0c;在这n个数之间任意放置,-号&#xff0c;称得到的等式的值能够整除k则为可划分的&#xff0c;否则为不可划分的。 自己想的是枚举&#xff0c;将所有得到的等式的和算出来&#xff0c;再判断它是否能够整除k&#xff0c;可是有10000个…

三种root的修补方式

三种root的修补方式 system/core/adb/abd.c adbd漏洞&#xff0c;请看abd.c的第917行/* then switch user and group to "shell" */ if (setgid(AID_SHELL) ! 0) { exit(1); } if (setuid(AID_SHELL) ! 0) { exit(1); …

数据挖掘十大经典算法

国际权威的学术组织the IEEE International Conference on Data Mining (ICDM) 2006年12月评选出了数据挖掘领域的十大经典算法&#xff1a;C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART. 不不过选中的十大算法&#xff0c;事实上參加评选…

windows dmp文件为0kb

列出一些遇到的情况提供参考&#xff1a; 1、栈溢出&#xff0c;多次调用T2A函数会出现程序崩溃但是dmp为0kb的问题。

dynamic与var

dynamic与var示例 var是一种语法省略写法&#xff0c;编译器会根据上下文推断出正确的类型。 int[] scores new int[] { 1, 2, 7, 9, 8, 4, 6, 5 };foreach (var item in scores){Console.WriteLine(item);} 在大多数情况下&#xff0c;dynamic 类型与 object 类型的行…