windows下,linux下c++生成文件夹
生活随笔
收集整理的這篇文章主要介紹了
windows下,linux下c++生成文件夹
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
windows下方法
方法1:使用system()函數調用 mkdir 命令
代碼如下
#include <string> using namespace std;int main() {string folderPath = "testFolder";string command = "mkdir " + folderPath;system(command.c_str()); }效果:在當前目錄下生成一個testFolder的文件夾,如下圖
?
//?分割線 /
linux下方法
代碼如下
#include <stdint.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <string> #include <iostream> using namespace std;bool createDirs(const string& dirName) {// 全路徑名string fullPath = "";uint32_t beginCmpPath = 0; // fullPath開始的下標uint32_t endCmpPath = 0; // fullPath結尾的下標if('/' != dirName[0]) // 不是'/'開頭說明是相對路徑{// 使用getcwd()函數獲取當前工作目錄的絕對路徑fullPath = getcwd(NULL, 0);beginCmpPath = fullPath.size();// 得到全路徑名fullPath = fullPath + "/" + dirName;}else // 絕對路徑{fullPath = dirName;beginCmpPath = 1;}// 結尾不是 '/' 結尾,則加上 '/'if (fullPath[fullPath.size() - 1] != '/'){fullPath += "/";}endCmpPath = fullPath.size();// 從前往后遍歷for(uint32_t i = beginCmpPath; i < endCmpPath ; i++ ){// 以 '/' 為分隔符if('/' == fullPath[i]){string curPath = fullPath.substr(0, i);// 若該目錄不存在if(access(curPath.c_str(), F_OK) != 0){// 新建該目錄(S_IRUSR:用戶讀權限; S_IRGRP:用戶組讀權限; S_IROTH:其他組都權限; S_IWUSR:用戶寫權限; S_IWGRP:用戶組寫權限; S_IWOTH:其他組寫權限)if(mkdir(curPath.c_str(), S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH) == -1){return false;}}}}return true; }int main() {createDirs("go/log");return 0; }效果圖(可以看到我們編譯出可執行程序test后,執行得到目錄 go/log)
總結
以上是生活随笔為你收集整理的windows下,linux下c++生成文件夹的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: getcwd()函数用法
- 下一篇: ubuntu16.04安装vim报错 v