C++:如何检查文件/目录是否可读? (PHP 等效项:is_read)
我正在尝试使用 C++ 验证目录。
http://php.net/manual/en/function.is-read。 php
bool is_read ( 字符串 $filename )
告诉文件(或目录)是否存在并且可读。
在 C++ 中,上面的等价物是什么?
我已经在使用 boost/filesystem 库来检查该目录是否存在。 我已经检查了文档:
http://www.boost.org/ doc/libs/1_44_0/libs/filesystem/v3/doc/index.htm
但我找不到 PHP 的 is_read() 的等效项。
如果 boost/文件系统库无法实现,您会使用什么方法?
I am trying to validate a directory with C++.
http://php.net/manual/en/function.is-readable.php
bool is_readable ( string $filename )
Tells whether a file (or directroy) exists and is readable.
What would be the equivalent of the above in C++?
I am already using the boost/filesystem library to check that the directory exists.
I have checked the documentation:
http://www.boost.org/doc/libs/1_44_0/libs/filesystem/v3/doc/index.htm
but I cannot find the equivalent of PHP's is_readable().
If it is not possible with the boost/filesystem library, what method would you use?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
由于您已标记问题“Linux”,因此有一个 POSIX 函数可以检查当前进程的用户是否可读/可写/可执行该文件。请参阅
man 2 access
。例如,
或者,如果您需要可移植性,请尝试实际打开文件进行读取(例如
std::ifstream
)。如果成功,则该文件可读。同样,对于目录,使用boost::filesystem::directory_iterator,如果成功,则目录可读。Since you've tagged the question "Linux", there is a POSIX function to check if the file is readable/writable/executable by the user of the current process. See
man 2 access
.For example,
Alternatively, if you need portability, try to actually open the file for reading (e.g.
std::ifstream
). If it succeeds, the file is readable. Likewise, for directories, useboost::filesystem::directory_iterator
, if it succeeds, directory is readable.大多数操作系统提供 stat()。
Most operating systems provide stat().