zoukankan      html  css  js  c++  java
  • C++ 文件类型判别错误,将目录文件识别为普通文件

    场景:

      我使用Linux操作系统的时候,自己的虚拟机能够正常判断文件类型,而且同一台电脑之前几次都能正确识别文件类型,但这一次识别文件类型错误。单步调试,文件名能够正常被读取。下面的函数中除了"."和".."的目录能够正常识别以外,其余目录文件全被识别为普通文件(ptr->d_type为0)。

    代码如下:

        std::vector<std::string> folderList;
        DIR *dir;
        struct dirent *ptr;
        std::string allPath = path; //文件或文件的完整路径
        if ((dir=opendir(allPath.c_str())) == NULL){
            zout<<"open dir error:"<<allPath << endl;
            std::perror("error info:");
            return folderList;
        }
        while ((ptr=readdir(dir)) != NULL){
            if(strcmp(ptr->d_name,".")==0 || strcmp(ptr->d_name,"..")==0)    ///current dir OR parrent dir
                continue;
            else if(ptr->d_type == 4){    //若为目录文件则返值为,普通文件则为0
                folderList.push_back(ptr->d_name);
            }
        }
        std::sort(folderList.begin(), folderList.end());
        closedir(dir);
        return folderList;

    产生原因:

      硬盘所在的目录未被挂载成功。

    查看磁盘情况:

      查看磁盘情况:df -h(发现无对应磁盘)

      查看设备情况: ls /dev/md*

      

     解决方法:

      命令行输入:mount /dev/md127(设备路径) /mnt/store(文件和目录所在路径),即将"/dev/md127"设备挂载在"/mnt/store"路径下的。  问题得以解决。

    坚持成就伟大
  • 相关阅读:
    史上最全Html与CSS布局技巧
    Discuz! X的CSS加载机制
    关于input框只能输入纯数字问题
    对象的数据属性
    vue中将光标定位到Input上的问题
    端口占用问题解决方案
    el-button如何消除右边计数样式
    如何改变vscode的背景颜色
    为什么——要实例化对象?
    call()&apply()
  • 原文地址:https://www.cnblogs.com/xian-yongchao/p/15542386.html
Copyright © 2011-2022 走看看