C++:如何检查文件/目录是否可读? (PHP 等效项:is_read)

发布于 2024-09-16 01:23:15 字数 586 浏览 2 评论 0原文

我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

郁金香雨 2024-09-23 01:23:16
  1. 由于您已标记问题“Linux”,因此有一个 POSIX 函数可以检查当前进程的用户是否可读/可写/可执行该文件。请参阅man 2 access

    int access(const char *pathname, int mode);
    

    例如,

    if (-1 == access("/file", R_OK))
    {
        perror("/文件不可读");
    }
    
  2. 或者,如果您需要可移植性,请尝试实际打开文件进行读取(例如std::ifstream)。如果成功,则该文件可读。同样,对于目录,使用boost::filesystem::directory_iterator,如果成功,则目录可读。

  1. 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.

    int access(const char *pathname, int mode);
    

    For example,

    if (-1 == access("/file", R_OK))
    {
        perror("/file is not readable");
    }
    
  2. 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, use boost::filesystem::directory_iterator, if it succeeds, directory is readable.

远山浅 2024-09-23 01:23:16

大多数操作系统提供 stat()。

Most operating systems provide stat().

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文