1. 程式人生 > 其它 >linux和Windows C++ 資料夾建立、刪除

linux和Windows C++ 資料夾建立、刪除

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許可權,代表其他使用者擁有執行的許可權