C++在Ubuntu下查看文件夹是否存在并创建新文件夹
查看是否存在
使用unistd.h头文件中的access函数
#include<unistd.h>
截取unistd.h函数声明如下
/* Values for the second argument to access.
These may be OR'd together. */
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
/* Test for access to NAME using the real UID and real GID. */
extern int access (const char *__name, int __type) __THROW __nonnull ((1));
传入的两个变量分别是文件夹的路径,以及需要查询的权限,6的意思是读写
std::string folderpath = "/<the_folder_path>";
if(access(folderpath.c_str(), 6)){
std::cout<<"folder does not exist! Will create a new one!" <<std::endl;
}
创建文件夹
使用stat.h
中的mkdir
函数
#include<sys/stat.h> // 注意:这个头文件在sys下面
截取stat.h
函数声明如下:
/* Create a new directory named PATH, with permission bits MODE. */
extern int mkdir (const char *__path, __mode_t __mode)
__THROW __nonnull ((1));
传入的两个参数一个是路径名,另一个是权限以bit为计算单位所得到的数值,例子
mkdir(folderpath.c_str(), 0777);
注意
这两个函数所定义的传入的路径名类型均为char*,因此std::string类型的文件名需要使用.c_str()