【问题标题】:Qt class for handling file paths [duplicate]用于处理文件路径的 Qt 类
【发布时间】:2010-10-18 22:22:45
【问题描述】:

可能重复:
Qt equivalent of PathAppend?

Qt 中是否有处理文件路径的类?特别是我正在寻找类似 .NET 的 Path.Combine 的东西。

我知道 boost::filesystem 中有一个,但我想知道 Qt 中是否有一个。

【问题讨论】:

标签: c++ qt


【解决方案1】:

QDir 可能会有所帮助(请参阅 QDir::relativeFilePathQDir::canonicalPath 等)。

引用 QDir 文档:

QDir 用于操作路径 名称,访问信息有关 路径和文件,并操作 底层文件系统。

【讨论】:

  • 其实QDir是比较笨的类。例如,它不允许 cd() 到不存在的目录。
  • 这是个玩笑吧?没有程序可以 cd 进入不存在的目录。 QDir 和 QFile 非常灵活,我强烈推荐。
  • 谢尔盖的意思是QDir::cd(),它(应该)只是return QDir( this->filePath( arg ) )的快捷方式。这与更改进程的 CWD 无关。如果QDir::cd() 允许不存在的名称,那么这将使它成为 Qt 类来抽象出一个路径(目前,QString 服务于这个目的——不是!)。就像现在一样,如果 Sergei 是对的,它就无法发挥潜力,这确实是一个可悲的设计错误。
【解决方案2】:

QDir 提供对目录内容的访问并允许进行各种操作(例如 mkdir)。但不幸的是,没有用于路径组件操作的类。

【讨论】:

    【解决方案3】:

    另一个可能有用的类是QFileInfo

    来自 Qt 文档:

    QFileInfo 类提供 独立于系统的文件信息。

    QFileInfo 提供关于一个 文件的名称和位置(路径)在 文件系统,其访问权限和 无论是目录还是符号 链接等文件的大小和最后 修改/读取时间也是 可用的。也可以使用 QFileInfo 获取有关 Qt 的信息 资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-25
      • 2021-02-22
      • 1970-01-01
      • 1970-01-01
      • 2016-06-13
      • 1970-01-01
      • 2010-09-12
      • 1970-01-01
      相关资源
      最近更新 更多