当前位置:  开发笔记 > 编程语言 > 正文

如何检查文件是否是C++中的常规文件?

如何解决《如何检查文件是否是C++中的常规文件?》经验,为你挑选了1个好方法。

如果文件是常规文件(并且不是目录,管道等),我如何签入C++?我需要一个函数isFile().

DIR *dp;
struct dirent *dirp;

while ((dirp = readdir(dp)) != NULL) {
if ( isFile(dirp)) {
     cout << "IS A FILE!" << endl;
i++;
}

我已经尝试将dirp-> d_type与(unsigned char)0x8进行比较,但它似乎无法通过不同的系统进行移植.



1> Johannes Sch..:

您可以使用可移植的boost::filesystem(标准C++库在最近在C++ 17中引入std :: filesystem之前无法做到这一点):

#include 
#include 
#include 

int main() {
    using namespace boost::filesystem;

    path p("/bin/bash");
    if(is_regular_file(p)) {
        std::cout << "exists and is regular file" << std::endl;
    }
}

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有