通过规则处理让源路径成为最短等价路径

处理规则如下

1.使用单斜线取代多斜线
2.取消每个包含.名称的路径
3.取消内部包含..的路径
4.取消/..根路径的元素,使用/替换

这个过程是循环执行的,直到路径符合所有规则

示例

QStringList ls;ls << "a/c" << "a//c" << "a/c/." << "a/c/b/.." << "/../a/c" << "/../a/b/../././/c" << "";for (auto& t : ls){QString k =  QDir::cleanPath(t);qDebug() << k << "\r\n";}

输出如下:

而/../a/c其实就是/a/c, Qt官方帮助手册中提到如下:

Returns path with directory separators normalized (that is, platform-native separators converted to "/") and redundant ones removed, and "."s and ".."s resolved (as far as possible).

Symbolic links are kept. This function does not return the canonical path, but rather the simplest version of the input. For example, "./local" becomes "local", "local/../bin" becomes "bin" and "/local/usr/../bin" becomes "/local/bin".

红色的表示:在不影响正确的情况,在返回的路径中,尽量保留  ...

这也就是输出/../a/c而不是/a/c的原因。

QDir类cleanPath函数用法相关推荐

  1. Mysql中rank类的函数用法

    Mysql中rank类的函数用法 rank() over 作用:查出指定条件后的进行排名,条件相同排名相同,排名间断不连续. 说明:例如学生排名,使用这个函数,成绩相同的两名是并列,下一位同学空出所占 ...

  2. Mat 类常用函数用法示例

    #include "opencv2/imgproc/imgproc.hpp" #include "opencv2/highgui/highgui.hpp" #i ...

  3. python中类方法与实例方法的区别-Python中的对象,方法,类,实例,函数用法分析...

    本文实例分析了Python中的对象,方法,类,实例,函数用法.分享给大家供大家参考.具体分析如下: Python是一个完全面向对象的语言.不仅实例是对象,类,函数,方法也都是对象. class Foo ...

  4. C++string类常用函数 c++中的string常用函数用法总结

    string类的构造函数: string(const char *s);    //用c字符串s初始化 string(int n,char c);     //用n个字符c初始化 此外,string类 ...

  5. python中func函数用法_python之4类回调函数的使用方法

    原标题:python之4类回调函数的使用方法 将函数作为参数传递给另一个函数,一共分为4种情况: 将普通函数传递给普通函数 将普通函数传递给类成员函数 将类成员函数传递给普通函数 将类成员函数传递给类 ...

  6. 指向 类成员函数 指针的用法

    C++在使用函数指针调用类成员函数的时候会遇到很多问题,以下是解决办法: 代码 //test.h class CMyc{ public:int fun(int);typedef int (CMyc:: ...

  7. c语言callback函数用法,C函数回调(callback)C++类成员函数的方法

    问题的由来 C回调的步骤一般是: 声明callback函数类型: 根据类型定义一个callback函数A: 把定义的函数A,作为参数传入到另外一个函数B: 函数B会在某个时刻,调用A. 因为C里面函数 ...

  8. 计算机科学类专升本复习之“C语言fgetc和fputc函数用法”详解(初稿)

    C语言fgetc和fputc函数用法详解(以字符形式读写文件) 在C语言中,"读写"文件比较灵活,既可以每次"读写一个字符",也可以"读写一个字符串& ...

  9. Qt扫盲-QDir类的学习和使用

    Qt5的QDir类的学习 文章目录 Qt5的QDir类的学习 概述: 相对路径与绝对路径 相对性判断 存在性判断 相对路径转绝对路径 导航和路径操作 获取和设置QDir的值 切换路径 新建删除重命名文 ...

最新文章

  1. 温水里的程序员,技术将淘汰一切。
  2. 【字符串】manacher算法
  3. CentOS7.3下配置 Apache2.4 + MySQL5.7 + PHP7.1.8
  4. cf-Global Round2-C. Ramesses and Corner Inversion(思维)
  5. Hadoop生态hive(四)数据类型
  6. 【Java】jdk 1.8 新特性——Lambda表达式
  7. matlab lti全响应,《LTI系统的响应——实验报告》.doc
  8. 三和韓長庚 著 易學原理總論 對讀 021_040
  9. UVA 10870 Recurrences 矩阵快速幂
  10. [转载] python--isalnum()函数
  11. Missing artifact jdk.tools:jdk.tools:jar:1.8报错
  12. 牛客寒假集训营 牛牛战队的比赛地
  13. PMP考试时间多长?
  14. 小学生怎样学习英语,ProudKids少儿英语推荐几首适合学英语的三年级英语歌曲
  15. 也许我们喜欢数学,只是不喜欢数学课
  16. 最近遇到一个ORA-1000,“maximum open cursors exceeded“
  17. Vue 发布文件压缩
  18. 基于近场动力学的二维疲劳裂纹扩展模型_如何抑制高强铝合金裂纹等缺陷,就在《铝及铝合金铸轧成形与裂纹扩展》...
  19. php mysql大学生求职招聘资源信息网zkfdzkf67a8
  20. shadermaterial 实现大气层效果和辉光效果

热门文章

  1. 时隔6年,NASA再造仿人机器人,或将在太空工作,应对严苛环境
  2. 100块钱买100只鸡php,使用JS计算买100只鸡问题
  3. 分支和循环_月隐学python第5课
  4. 简述园路的功能作用_智能式多功能电表解析
  5. 代码执行漏洞-无字母数字RCE-create_function()
  6. centos 下载oracle_Linux镜像下载大全
  7. lol人物模型提取(五)
  8. 笔记之_java整理JavaScript
  9. 系统中异常公共处理模块 in spring boot
  10. leetcode 81 Search in Rotated Sorted Array II ----- java