当前位置: 首页>>代码示例>>C++>>正文


C++ iterator::size方法代码示例

本文整理汇总了C++中qfileinfolist::iterator::size方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::size方法的具体用法?C++ iterator::size怎么用?C++ iterator::size使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在qfileinfolist::iterator的用法示例。


在下文中一共展示了iterator::size方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: GetFileInfoList

QStringList StorageGroup::GetFileInfoList(QString Path)
{
    QStringList files;
    QString relPath;
    bool badPath = true;

    if (Path.isEmpty() || Path == "/")
    {
        for (QStringList::Iterator it = m_dirlist.begin(); it != m_dirlist.end(); ++it)
            files << QString("sgdir::%1").arg(*it);

        return files;
    }

    for (QStringList::Iterator it = m_dirlist.begin(); it != m_dirlist.end(); ++it)
    {
        if (Path.startsWith(*it))
        {
            relPath = Path;
            relPath.replace(*it,"");
            if (relPath.startsWith("/"))
                relPath.replace(0,1,"");
            badPath = false;
        }
    }

    LOG(VB_FILE, LOG_INFO, LOC +
        QString("GetFileInfoList: Reading '%1'").arg(Path));

    if (badPath)
        return files;

    QDir d(Path);
    if (!d.exists())
        return files;

    QFileInfoList list = d.entryInfoList();
    if (!list.size())
        return files;

    for (QFileInfoList::iterator p = list.begin(); p != list.end(); ++p)
    {
        if (p->fileName() == "." ||
            p->fileName() == ".." ||
            p->fileName() == "Thumbs.db")
        {
            continue;
        }

        QString tmp;

        if (p->isDir())
            tmp = QString("dir::%1::0").arg(p->fileName());
        else
            tmp = QString("file::%1::%2::%3%4").arg(p->fileName()).arg(p->size())
                          .arg(relPath).arg(p->fileName());

        LOG(VB_FILE, LOG_DEBUG, LOC +
            QString("GetFileInfoList: (%1)").arg(tmp));
        files.append(tmp);
    }

    return files;
}
开发者ID:gdenning,项目名称:mythtv,代码行数:64,代码来源:storagegroup.cpp

示例2: countSize

qint64 Dialog::countSize(QString filePath)
{
    qint64 fileSize = 0;
    QList<QString> fileList;
    QFileInfo fileInfo(filePath);
    QString strTopDir;
    if(fileInfo.isDir()) {//文件夹加入堆栈
        m_bFolder = true;
        if (filePath.contains('/'))
        {
            QStringList strList = filePath.split("/");
            int iSize = strList.size();
            strTopDir = strList.at(iSize-1);
        }
        else if(filePath.contains('\\'))
        {
            QStringList strList = filePath.split("\\");
            int iSize = strList.size();
            strTopDir = strList.at(iSize-1);
        }
            fileList.push_back(filePath);
    } else {//如果是文件的话就取文件的特特征码,文件特征码用文件的创建,最后的修改时间字符串和文件的路径取MD5
            m_bFolder = false;
            m_fileList.push_front(filePath);
            fileSize = fileInfo.size();
            QString createTime = fileInfo.created().toString();
            QString modifiedTime = fileInfo.lastModified().toString();
            QString checkString = createTime + modifiedTime;
            checkString += filePath;
            //m_fileCheck = MD5String(checkString.toLocal8Bit().data());
    }

    while(!fileList.isEmpty()){//判断堆栈中是否有文件夹
            QString filePath = fileList.value(0);//取堆栈的顶部位置
            QDir dir(filePath);//文件夹信息
            dir.setFilter(QDir::Dirs|QDir::Files|QDir::Hidden|QDir::System);
            dir.setSorting(QDir::DirsFirst);
            QFileInfoList list = dir.entryInfoList();//去得文件夹的文件信息
            QFileInfoList::iterator iter;
            if (2 == list.size())
            {
                qDebug() << "empty dir : " << filePath;
                m_emptyFolderList.push_back(filePath);
            }
            for(iter=list.begin(); iter!=list.end(); iter++) {//遍历文件夹内部
                    //m_stopMutex.lock();
//                    if(m_bStop) {
//                            m_stopMutex.unlock();
//                            return -1;
//                    }
                   // m_stopMutex.unlock();
                    //qDebug() << "filename : " << iter->fileName();
                    if(iter->fileName() == "." || iter->fileName() == "..") {
                            continue;
                    }
                    if(iter->isDir()) {//如果为文件夹的话加入到堆栈
                            fileList.push_back(iter->filePath());
                    } else {//如果是文件的话,取到文件的大小,并且把文件加入到发送list中
                            fileSize += iter->size();
                            //QString str
                            m_fileList.push_front(iter->filePath());
                    }
            }
            fileList.pop_front();//堆栈顶部的元素已经处理完毕,出堆栈
    }
//    if(m_fileCheck.size() == 0) {//文件夹的特征码是文件的所有路径取MD5
//            QString checkString;
//            QList<QString>::iterator iter;
//            for(iter=m_fileList.begin(); iter!=m_fileList.end(); iter++) {
//                    checkString += (*iter);
//            }
//            m_fileCheck = MD5String(checkString.toLocal8Bit().data());
//    }

    qDebug() << "file or director size : " << fileSize;
    return fileSize;
}
开发者ID:SiteView,项目名称:NetWorkMapPlugin,代码行数:77,代码来源:dialog.cpp


注:本文中的qfileinfolist::iterator::size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。