#ifndef FOLDERFINDER_H

#define FOLDERFINDER_H
#include <QDir>
class FolderFinder
{
public:
    QString absoluteFolderPath; //要转换的绝对路径
    QString FolderPath; //要定位的文件夹名称
    FolderFinder(const QString & filePath,const QString & folderPath)
    {
        FolderPath=folderPath;
    RecursiveFolder(filePath);
    }
private:
    QString getAbsolutePathFrom(const QString & filePath)
    {
        QDir tempInfo;
        QString absoluteFilePath=tempInfo.absoluteFilePath(filePath).replace("/./","/"); //获取绝对路径
    return absoluteFilePath;
    }
    void RecursiveFolder(const QString & path)
    {
        QDir dir(path);
       // dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
       // dir.setSorting(QDir::Size | QDir::Reversed);
        QFileInfoList list = dir.entryInfoList();
        for (int i = 0; i < list.size(); ++i) {
            QFileInfo fileInfo = list.at(i);
            if(fileInfo.fileName()=="." || fileInfo.fileName()=="..")
            {
                    i++;
                    continue;
            }
            if(fileInfo.isDir())
            {
             if(fileInfo.fileName()==FolderPath)
             {
                 absoluteFolderPath=getAbsolutePathFrom(fileInfo.filePath());
                 break;
             }
            RecursiveFolder(fileInfo.filePath());
            }
        }
    }
};
#endif // FOLDERFINDER_H
使用方法

FolderFinder folder("C:\\qtconsoletest-build-desktop","Politics"); //初始递归路径

cout<<qPrintable(QString("%1").arg(folder.absoluteFolderPath));

###
QStringList items; items << "All" << "Weekend Plus" ; ui->listWidgetTimeSet->addItems(items);

QListWidgetItem* all_item = new QListWidgetItem( "All" );
QListWidgetItem* wp_item = new QListWidgetItem( "Weekend Plus" );
listWidgetTimeSet->addItem( all_item );
listWidgetTimeSet->addItem( wp_item ); listWidgetTimeSet->setCurrentItem( wp_item );

QT文件夹定位(网友提供)的更多相关文章

  1. Qt文件夹遍历

    void FindFile(const QString &_filepath) { QDir dir(_filepath); for each (QFileInfo mfile in dir. ...

  2. [转]Windows7文件夹转移清理臃肿的C盘

    当你使用Windows的时候,你会发现无论哪个版本的Windows,系统都会默认将用户文件夹和程序数据文件夹(xp下是Documents and Settings文件夹,而windows7和vista ...

  3. 改变 Windows 用户文件夹默认位置

    https://social.microsoft.com/Forums/zh-CN/b6602d50-1a75-42d2-90bd-3dc6c2c82147/programdata?forum=win ...

  4. Qt文件发布

    1.打开Qt文件夹下的,其他版本可能为Qt (版本号)for Desktop cmd 2.将Release文件下的exe文件复制到别的文件夹,我这里为G:\Qt\QT_project\ff 3.在Qt ...

  5. 20160223 - Windows 10 的文件资源管理器下出现重复文件夹的解决办法

    现象: 安装 OneDrive 从 Windows 7.8.8.1 升级来的 Windows 10 的电脑,可能会出现文件资源管理器左侧面板中出现重复的文件夹. 通常有:视频.图片.文档.下载.音频. ...

  6. 探索Windows命令行系列(4):通过命令管理文件和文件夹

    1.文件夹操作 1.1.DIR(directory)命令 1.2.TREE 命令 1.3.CD(change directory)命令 1.4.MD(make directory)命令 1.5.RD( ...

  7. jq和js插件的各个文件夹里放置的内容

    1. demo文件夹,存放各种实例. 2. dist文件夹,全称是distribution.在某些框架中,因为开发和发布的内容或者代码形式是不一样的(比如利用Grunt压缩等等),这时候就需要一个存放 ...

  8. 探索Windows命令行系列(4):通过命令操作文件和文件夹

    1.文件夹操作 1.1.DIR(directory)命令 1.2.TREE 命令 1.3.CD(change directory)命令 1.4.MD(make directory)命令 1.5.RD( ...

  9. Android——4.2.2 源代码文件夹结构分析

    近期公司要整android内部培训,分配给我写个培训文档.这里记录例如以下: 撰写不易,转载请注明出处:http://blog.csdn.net/jscese/article/details/4089 ...

随机推荐

  1. javascript定时器:setTimeout与setInterval

    概述: setTimeout:在指定的延迟时间之后调用一个函数或者执行一个代码片段,只执行一次: setInterval:周期性地调用一个函数(function)或者执行一段代码,重复执行: 语法格式 ...

  2. Win32多线程编程(3) — 线程同步与通信

      一.线程间数据通信 系统从进程的地址空间中分配内存给线程栈使用.新线程与创建它的线程在相同的进程上下文中运行.因此,新线程可以访问进程内核对象的所有句柄.进程中的所有内存以及同一个进程中其他所有线 ...

  3. Linux 时间同步配置(转)

    一. 使用ntpdate 命令 1.1 服务器可链接外网时 # crontab -e 加入一行: */1 * * * * ntpdate 210.72.145.44 210.72.145.44 为中国 ...

  4. ORACLE触发器概述之【行触发器】【weber出品】

    1. 行触发器的定义 行触发器是指执行DML操作时,每作用一行就触发一次的触发器.审计数据变化时,可以使用行触发器 2. 建立行触发器的语法如下: create or replace trigger ...

  5. 0301——SearchController

    创建显示的页面 SearchViewController * searchVC = [[SearchViewController alloc]init]; 告诉搜索控制器将结果显示在创建的页面上 se ...

  6. iOS学习笔记-CoreData

    简介 CoreData提供了对象关系映射(ORM)功能,从效果上说就是创建了一个"虚拟对象数据库",也可以把它看作一个综合的数据库管理库. NSManagedObjectConte ...

  7. (一)CSS3动画应用 - CSS3 实现 侧边栏展开收起

    @keyframes 规则用于创建动画. @keyframes 中规定某项 CSS 样式,就能创建由当前样式逐渐改为新样式的动画效果 @keyframes 中创建动画时,请把它捆绑到某个选择器,否则不 ...

  8. Python标准库内置函数——hasattr

    hasattr(object, name): # object 对象 name 特征名称 判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, nam ...

  9. c#鼠标在控件上面,然后显示文字

    先添加toolTip控件到界面 然后每个控件的属性会多一项 ToolTip 第一种:直接给里面加文字 第二种: private void pictureBox_topmost_MouseHover(o ...

  10. GetClientRect()和GetWindowRect()

    GetClientRect()   是得到客户区坐标系下客户区的RECT GetWindowRect()是得到屏幕坐标系下整个窗口的RECT GetSystemMetrics()是获得屏幕分辨率大小 ...