zoukankan      html  css  js  c++  java
  • QT 读取文件夹下所有文件(超级简单的方法,不需要QDirIterator)

    之前,用标准C++写过读取文件夹。
    现在用QT重写代码,顺便看了下QT如何实现,还是相当简单的。
    主要用到QDir,详细文档可见这里

    A program that lists all the files in the current directory (excluding symbolic links), sorted by size, smallest first:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include
    #include
     
     int main(int argc, char *argv[])
     {
         QCoreApplication app(argc, argv);
         QDir dir;
         dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
         dir.setSorting(QDir::Size | QDir::Reversed);
     
         QFileInfoList list = dir.entryInfoList();
         std::cout << "     Bytes Filename" << std::endl;
         for (int i = 0; i < list.size(); ++i) {
             QFileInfo fileInfo = list.at(i);
             std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
                                                     .arg(fileInfo.fileName()));
             std::cout << std::endl;
         }
         return 0;
    }

    上面的代码只列出了当前目录下的文件,并没有递归地进入子目录遍历。
    递归遍历子目录如下:

    01
    02
    03
    04
    05
    06
    07
    08
    09
    10
    11
    12
    13
    14
    15
    QFileInfoList GetFileList(QString path)
    {
        QDir dir(path);
        QFileInfoList file_list = dir.entryInfoList(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
        QFileInfoList folder_list = dir.entryInfoList(QDir::Dirs | QDir::NoDotAndDotDot);
     
        for(int i = 0; i != folder_list.size(); i++)
        {
             QString name = folder_list.at(i).absoluteFilePath();
             QFileInfoList child_file_list = GetFileList(name);
             file_list.append(child_file_list);
        }
     
        return file_list;
    }

    至于,网页处理后,需要根据输入的目录,生成对应的输出目录,可以使用QDir中的mkpath

    http://blog.chinaunix.net/uid-25749806-id-315904.html

  • 相关阅读:
    Python学习--10 面向对象编程
    Python学习--09 模块
    Python学习--08函数式编程
    JSON的简单例子
    error: Error retrieving parent for item: No resource found that matches the given name 'Theme.AppCompat.Light'.
    Failed to create the Java Virtual Machine.问题的解决
    导入项目时Loading descriptor ...
    Tomcat Server Timeouts属性的设置
    Type mismatch: cannot convert from java.sql.PreparedStatement to com.mysql.jdbc.PreparedStatement
    MySQL的Incorrect string value错误
  • 原文地址:https://www.cnblogs.com/findumars/p/6006129.html
Copyright © 2011-2022 走看看