#include <sys/stat.h>
/**
* 判断是否是一个文件
*/
static bool is_file(std::string filename) {
struct stat buffer;
return (stat (filename.c_str(), &buffer) == 0 && S_ISREG(buffer.st_mode));
}
/**
* 判断是否是一个文件夹,
* */
static bool is_dir(std::string filefodler) {
struct stat buffer;
return (stat (filefodler.c_str(), &buffer) == 0 && S_ISDIR(buffer.st_mode));
}
其他的状态
S_ISDIR
— directoryS_ISREG
— regular fileS_ISCHR
— character deviceS_ISBLK
— block deviceS_ISFIFO
— FIFOS_ISLNK
— symbolic linkS_ISSOCK
— socket
参考资料
1. https://stackoverflow.com/questions/3828192/checking-if-a-directory-exists-in-unix-system-call