C++ 目錄檔案操作(持續更新)
判斷目錄是否存在,存在便刪除:
#include<sstream>
#include<unistd.h>
void DeleteIfExist(char* path)
{
if(access(path,F_OK)!=0)//適用於linux系統
{
cout<<path<<" not exist, skipped."<<endl;
return;
}
ostringstream cmd;
cmd<<"rm -rvf "<<path;
system(cmd.str().c_str());
}
這裡說明兩點:
- C++庫函式remove以及Linux庫函式rmdir,只能刪除空目錄,或者單個檔案。
- 請記住,能用shell命令獲取檔案、資料夾資訊或者操作檔案、資料夾最好用shell命令獲取或者操作,而不要用各種API獲取或者操作,因為當遇到非法資料夾名或非法檔名或非法檔案長度、非法檔案日期、壓縮檔案、連結檔案、稀疏檔案……等各種意料之外的情況時,API會處理的不全面或陷入死迴圈,而shell命令不會。
相關推薦
C++ 目錄檔案操作(持續更新)
判斷目錄是否存在,存在便刪除: #include<sstream> #include<unistd.h> void DeleteIfExist(char* path)
C#Winform關於對xml檔案的一系列操作(持續更新)
// 讀取xml檔案到DataTable string filepath = Application.StartupPath + @"\Previous Competitions
關於Form、ModelForm的一些操作(持續更新)
mit mar rim sub field 後端 錯誤信息 關於 eth 1、前端循環:後端傳到前端的form是可以循環的,以此獲得想要展示的元素 <form method="post" class="form-horizontal" novalidate>
有關於Git操作(持續更新)
color 命令 合並 暫存 upstream 操作 col check 跟蹤 Git分支: 查看分支:git branch 創建分支:git branch <name> 切換分支:git checkout <name> 創建+切換分支:git ch
地理空間分析中的常用python操作(持續更新)
本章節主要參考《python地理空間分析指南》第五章的內容。 一、距離測量 距離測量包括歐式距離,球面距離,以及大地線距離(橢球距離)。主要採用math庫(標準庫,無需下載)進行運算。 1.歐式距離 計算任意兩點之間的距離可以採用距離公式: &nb
c++常用備忘(持續更新)
1.string和int互轉 int轉string用to_string(int) s+=to_string(root->val); string轉int用atoi(string.c_str()) res += atoi(s.c_str()); 2
Mikrotik-routeros命令行操作(持續更新)
linu 登錄 com lin 文件 路由配置 令行 enable 實用 Mikrotik是一款比較成熟的軟路由。在沒有條件購買和實用硬件路由器或者交換的時候,這款軟路由可以作為一項參考。 主頁地址:https://mikrotik.com/ wiki文檔:ht
linux下常用操作(持續更新)
使用者和使用者組: 一,組操作 1,建立組 groupadd test 增加一個test組 新增使用者組: groupadd test 2,修改組 groupmod -n test2 test
C++ Primer 學習筆記(持續更新......)
本筆記主要是一個記錄,整理和總結一下C++學習過程中的知識點。 struct和class 區別:兩個關鍵字都是進行類的定義。struct也可以定義類,和class定義的類唯一不同之處就在於預設的初始訪問級別,struct在不宣告public或者private
C++編譯錯誤彙總(持續更新)
1.error C2061: 語法錯誤: 識別符號“_TCHAR” 解決方法:新增一條 #include <tchar.h> 即可成功編譯 2.VS2010中無法開啟原始檔
linux shell 字串獲取長度、替換、擷取、刪除等操作(持續更新)
測試字串:str=/xxx/file.txt.gz一、長度、變數:說明 表示式 例子 結果 獲取長度 ${#string} ${#str} 16 列出所有以prefix開頭的變數 ${!prefix*}、${!prefix@} ${!st@} str測試${
Python Redis常用操作(持續更新)
[TOC] # 1、Redis簡介 `redis`是業界主流的`key-value`,`nosql`資料庫之一。和Memcached類似,它支援儲存的value型別相對更多,包括`string`(字串)、`list`(列表)、`set`(集合)、`zset`(sorted set --有序集合)和`hash
C++的一些小操作、常用庫及函式(持續更新)
1. 強制保留n位小數(位數不足則強制補零) 標頭檔案: #include <iomanip> 在輸出前: cout<<setprecision(n); 也有不用標頭檔案的方式,在輸出前: cout.setf(ios::fixed);
(持續更新)C++ LCT(Link-cut-tree) 動態樹 總結
發現 虛線 tchar 持續更新 ces father img reverse new 準備知識:樹剖&Splay 一、理解LCT的工作原理 先看一道例題: 讓你維護一棵給定的樹,需要支持下面兩種操作: Change x val: 令x點的點權變為val Que
C++ 編程技巧筆記記錄(持續更新)
算法 模板函數 () 不必要 過大 默認構造函數 函數 容易 [] 前言: 希望通過閱讀《Effective C++》系列《Expectional C++》系列等書 挑選出一些個人覺得重要的條款/經驗/技巧進行記錄總結。 類/對象: 1.基類析構函數應總是public
一個博客萌新的C語言之旅(持續更新中....)
方便 流程 函數聲明 語言 tex 表達 賦值語句 當前 寫在前面 先更新上一次留下的的C語言練習答案,如下: #include <stdio.h> double mj(double r) { return 3.14*r*r; } int main() { i
一個部落格萌新的C語言之旅(持續更新中....)
先更新上一次留下的的C語言練習答案,如下: #include <stdio.h> double mj(double r) { return 3.14*r*r; } int main() { int r; double s; r=3; s=mj(r); printf("%f",s); }
《Boost C++ Application Development Cookbook》筆記(持續更新)
小試牛刀 可用boost::optianal來作為函式返回值的標識,函式返回值用來表示函式是否執行成功,但如果執行成功但沒有正確的結果,這種情況則可以藉助boost::optianal來實現 boost::array 函式返回陣列可以用array,不用擔心資料越界等問題
【C#】C#學習筆記(持續更新)
本章比較雜亂,是本人在學習C#中的一些筆記,並不全面,只是一些隨筆。 1.一個 C# 程式主要包括以下部分: 名稱空間宣告(Namespace declaration) 一個 class Class 方法 Class 屬性 一個 Main 方法 語句(Stat
Hbase常用操作整理(持續更新)
1. 查詢操作 HBase中rowkey可以唯一標識一行記錄,在HBase查詢的時候,有以下幾種方式: 通過get方式,指定rowkey獲取唯一一條記錄 通過scan方式,設定startRow和stopRow引數進行範圍匹配 全表掃描,即直接掃描整張表中所有行