QFile::copy create 会创建文件的副本还是将内容从一个文件移动到另一个文件?

Posted

技术标签:

【中文标题】QFile::copy create 会创建文件的副本还是将内容从一个文件移动到另一个文件?【英文标题】:Will QFile::copy create create a copy of the file or move the contents from one file to another? 【发布时间】:2012-05-11 18:26:41 【问题描述】:

我正在尝试使用 C++/Qt 将文件从一个位置复制到另一个位置(在设备中)

我试过 QFile::copy("path1/file","path2");

我想将path1中的文件复制到path2。 path2 没有该文件。

我只是想知道这是否是正确的方法,因为上面的代码似乎不起作用。

另外,我应该在尝试复制之前打开文件吗?需要帮助!

【问题讨论】:

另外,您是否在文档中验证了您使用此功能的计划是否受支持? doc.trolltech.com/4.7/qfile.html#copy 【参考方案1】:

如果您想将path1/file 复制到具有相同文件名的path2,您需要这样做:

QFile::copy("path1/file", "path2/file");

复制允许您更改文件的名称。示例:

QFile::copy("path1/file1", "path1/file2");

这就是为什么您需要两次都包含文件名的原因。此外,不必先打开文件。为了回答标题问题,它复制了文件。 QFile::rename() 移动内容。

【讨论】:

谢谢!我还有一个问题。如果文件已存在于目标位置,则此 Qfile 副本将返回 false。我想第一次复制文件,每次修改源文件的内容。在第二种情况下,我必须使用 QFile rename()? 没有。如果文件已存在,则复制和重命名都将失败。您必须先删除目标文件。 这可以用来将资源文件复制到某个路径吗?例如,QFile::copy(":/default.jpg", "data.jpg"); 可能吗? @ThePeacefulCoder 您应该将其作为一个新问题提出。不幸的是,我不知道答案。 @ThePeacefulCoder 此链接声称它确实适用于复制资源文件:forum.qt.io/topic/13131/…

以上是关于QFile::copy create 会创建文件的副本还是将内容从一个文件移动到另一个文件?的主要内容,如果未能解决你的问题,请参考以下文章

QFile::copy 是不是将源文件权限保留在复制的文件中?

为啥 Xcode 会创建无限的文件夹递归?

为啥 NAudio 会创建一个两倍于应有大小的 WAV 文件?

为啥 Wordpress 会创建一个巨大的 error_log 文件?

当我们创建没有扩展名的新文件时,会创建啥类型的文件?

Create database语句介绍 MySQL DBA周末学习