【问题标题】:How to move files in Qt?如何在 Qt 中移动文件?
【发布时间】:2011-02-06 21:01:55
【问题描述】:

Qt中是否有相当于Windows中MoveFile函数和Linux中mv命令的跨平台功能?

【问题讨论】:

    标签: c++ qt


    【解决方案1】:

    当然,QDir::rename() 遵循旧的 Unix / POSIX 调用此重命名的传统。

    如果您考虑一个具有完整路径的文件,这是有道理的:底层 inode 只是被分配了不同的路径/文件标签。

    【讨论】:

    • 还有可能有用的 QFile::rename()。
    【解决方案2】:

    您可以使用QDir::rename(),但要注意rename() 可能失败的特殊情况:

    在大多数文件系统上,rename() 失败 仅当oldName 不存在时,如果 newNameoldName 不在 相同的分区,或者如果一个文件与 新名称已存在。然而, 还有其他原因 rename() 可能会失败。例如,在 至少一个文件系统rename() 失败 如果newName 指向一个打开的文件。

    【讨论】:

      【解决方案3】:

      QUrlOperator::copy() 是 QDir::rename() 的替代品,也可能对您有用。

      【讨论】:

      • 看起来不错,但似乎从 qt4 中删除:QUrlOperator 类不再是公共 Qt API 的一部分。它已重命名为 Q3UrlOperator 并移至 Qt3Support。在 Qt 4 应用程序中,您可以直接使用 QFtp 和 QHttp 等类在远程主机上执行与文件相关的操作。我不确定我是否应该使用它。
      猜你喜欢
      • 2018-03-10
      • 1970-01-01
      • 2020-03-05
      • 2012-01-24
      • 2012-01-09
      • 1970-01-01
      • 2022-11-13
      • 1970-01-01
      相关资源
      最近更新 更多