linux和Windows C++ 資料夾建立、刪除
阿新 • • 發佈:2021-09-01
linux
// 建立、刪除資料夾 void mkdir_output(const string &output_path){ if (access(output_path.c_str(), 0) == -1) { // mkdir(output_path.c_str(),S_IRUSR | S_IWUSR | S_IXUSR | S_IRWXG | S_IRWXO); system(("mkdir "+output_path).c_str()); std::cout<<output_path<<" create!"<<std::endl; } else { system(("rm -rf "+output_path).c_str()); system(("mkdir "+output_path).c_str()); std::cout<<output_path<<" recover create! "<<std::endl; } }
access函式在windows系統中在標頭檔案<io.h>中,在Ubuntu系統中則是在<unistd.h>之中
函式原型:int _access(const char *pathname, int mode);
引數:pathname 為檔案路徑或目錄路徑 mode 為訪問許可權(在不同系統中可能用不能的巨集定義重新定義)
返回值:如果檔案具有指定的訪問許可權,則函式返回0;如果檔案不存在或者不能訪問指定的許可權,則返回-1.
備註:當pathname為檔案時,_access函式判斷檔案是否存在,並判斷檔案是否可以用mode值指定的模式進行訪問。當pathname為目錄時,_access只判斷指定目錄是否存在,在Windows NT和Windows 2000中,所有的目錄都只有讀寫許可權。
mode的值和含義如下所示:
00——只檢查檔案是否存在
02——寫許可權
04——讀許可權
06——讀寫許可權
linux的mkdir#include <sys/stat.h>linux的mkdir 函式原型如下:
int mkdir(const char *pathname, mode_t mode);
今天使用linux的mkdir建立目錄。
函式說明:
mkdir()函式以mode方式建立一個以引數pathname命名的目錄,mode定義新建立目錄的許可權。 返回值: 若目錄建立成功,則返回0;否則返回-1,並將錯誤記錄到全域性變數errno中。 mode方式:S_IRWXU | 00700許可權,代表該檔案所有者擁有讀,寫和執行操作的許可權 |
S_IRUSR(S_IREAD) | 00400許可權,代表該檔案所有者擁有可讀的許可權 |
S_IWUSR(S_IWRITE) | 00200許可權,代表該檔案所有者擁有可寫的許可權 |
S_IXUSR(S_IEXEC) | 00100許可權,代表該檔案所有者擁有執行的許可權 |
S_IRWXG | 00070許可權,代表該檔案使用者組擁有讀,寫和執行操作的許可權 |
S_IRGRP | 00040許可權,代表該檔案使用者組擁有可讀的許可權 |
S_IWGRP | 00020許可權,代表該檔案使用者組擁有可寫的許可權 |
S_IXGRP | 00010許可權,代表該檔案使用者組擁有執行的許可權 |
S_IRWXO | 00007許可權,代表其他使用者擁有讀,寫和執行操作的許可權 |
S_IROTH | 00004許可權,代表其他使用者擁有可讀的許可權 |
S_IWOTH | 00002許可權,代表其他使用者擁有可寫的許可權 |
S_IXOTH | 00001許可權,代表其他使用者擁有執行的許可權 |