判断输入的是文件或者文件夹
/**
* @brief 判断输入的是文件或者文件夹
*
* @param path
* @return int 1 文件夹 2 文件 0 读取失败
* @demo common::isFileDir("/home/crazy/camel_100/build/CMakeCache.txt"
*/
int isFileDir ( const char* path )
{
struct stat s;
if ( stat( path, &s ) == 0 )
{
if ( s.st_mode & S_IFDIR )
{
std::cout << "DIR" << std::endl;
return 1;
}
else if ( s.st_mode & S_IFREG )
{
std::cout << "FILE" << std::endl;
return 2;
}
else
{
std::cout << "?" << std::endl;
return 0;
}
}
else
{
std::cout << "ERR" << std::endl;
return 0;
}
}
判断文件或者文件夹 是否存在
/**
* @brief 判断文件或者文件夹 是否存在
*
F_OK 值为0,判断文件是否存在
X_OK 值为1,判断对文件是可执行权限
W_OK 值为2,判断对文件是否有写权限
R_OK 值为4,判断对文件是否有读权限
注:后三种可以使用或“|”的方式,一起使用,如W_OK|R_OK
* @param name
* @return true 文件存在
* @return false 文件不存在
*
* @demo common::fileIsExist("/home/crazy/camel_100/build");
*/
bool fileIsExist(const std::string& name)
{
if (access(name.c_str(), F_OK) == 0)
{
std::cout<<" fileIsExist"<<std::endl;
return true;
}
std::cout<<" fileNoExist"<<std::endl;
return false;
}