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.pswp.cn/news/376209.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376209.shtml
英文地址,請注明出處:http://en.pswp.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 類型的行…