linux用c判断目录是否存在,关于C ++: 确定Linux中是否存在目录(不是文件)

这篇博客讨论了如何在Linux环境下使用C++判断一个路径是否为存在的目录,而非文件。通过stat()函数和S_ISDIR宏,或者使用opendir()函数,可以有效地检查路径是否为目录。此外,还提到了Boost库和C++17的std::filesystem作为跨平台解决方案的可能性,以及在使用这些方法时可能遇到的错误和注意事项。
摘要由CSDN通过智能技术生成

本问题已经有最佳答案,请猛点这里访问。

如何确定在Linux中使用C++的目录(不是文件)存在吗?我尝试使用stat()函数,但当找到文件时,它返回正值。我只想找出输入的字符串是否是一个目录,而不是别的什么。

stat()应该工作。你怎么用的?

结构stat st;cout

根据man(2)stat,您可以在st_模式字段上使用s_isdir宏:

bool isdir = S_ISDIR(st.st_mode);

另一方面,我建议使用boost和/或qt4,如果您的软件可以在其他OSS上运行,那么跨平台支持就更容易了。

这是正确的答案。

在including、andi get the compiler error,g++reports"error:'s诳iddir'was not declared in this scope"之后。有人知道会发生什么吗?

巴哈。Typo。S iddir->S isdir。

我在这里找到的东西怎么样

#include

bool DirectoryExists( const char* pzPath )

{

if ( pzPath == NULL) return false;

DIR *pDir;

bool bExists = false;

pDir = opendir (pzPath);

if (pDir != NULL)

{

bExists = true;

(void) closedir (pDir);

}

return bExists;

}

或使用STAT

struct stat st;

if(stat("/tmp",&st) == 0)

if(st.st_mode & S_IFDIR != 0)

printf(" /tmp is present

");

也许没有那么糟糕,但是上面给出的示例并没有那么有效,下面的示例是我已经在使用的,除了我正在使用的!= = 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值