在C++中標准庫中直接對目錄操作的函數好像沒有(本人目前沒找標准庫中有),所以使用系統平台函數來對文件夾進行操作比較方便。
系統函數在Windows和Linux系統有一定的區別,主要區別其實是在於Linux對於文件夾的權限設置有硬性要求,而Windows中就沒有。
windows:
函數:int access( const char * _Filename, int _AccessMode)
頭文件:io.h
linux:
函數:int access( const char * _Filename, int _AccessMode)
頭文件:unistd.h
功能:確定文件和文件夾是否存在和訪問權限 (_AccessMode參數:00表示只判斷是否存在,02表示文件是否可執行, 04表示文件是否可寫,06表示文件是否可讀),有指定訪問權限則返回0,否則函數返回-1
該函數在Linux原型一樣,用法相同。
windows:
函數:int mkdir(const char * _Path)
頭文件:direct.h
linux:
函數:int mkdir(const char *pathname, mode_t mode)
頭文件:sys/types.h, sys/stat.h
功能:創建文件夾,返回0為創建成功,否則返回-1。Linux中創建時會有權限要求,該權限參數可以去了解Linux對於文件權限的設置相關內容,例如:0777表示對文件具有完全的權限。
windows:
函數:int rmdir(const char *_Path)
頭文件:direct.h
linux:
函數:int rmdir(const char *_Path)
頭文件:sys/types.h, sys/stat.h
功能:刪除文件夾,成功返回0,否則-1。